mirror of
https://github.com/HDFGroup/hdf5.git
synced 2024-11-27 02:10:55 +08:00
[svn-r17667] Bug 1656 fix:
added a signal handler to the tcheck_version to intercept the abort signal from H5check_version. Some systems would prints extra messages and/or core dump if the abort signal is not handled. This eliminates those unwanted side effect. Tested: h5committested.
This commit is contained in:
parent
dfb22d02b0
commit
a7db9a67b5
@ -25,14 +25,19 @@
|
||||
*
|
||||
* Programmer: Albert Cheng
|
||||
* September 20, 2009
|
||||
* Modifications:
|
||||
* Added abort signal intercept. AKC - 2009/10/16 -
|
||||
*/
|
||||
|
||||
|
||||
#include <stdlib.h>
|
||||
#include "hdf5.h"
|
||||
#include "h5test.h"
|
||||
|
||||
#define progname "tcheck_version"
|
||||
|
||||
/* prototypes */
|
||||
void showhelp(void);
|
||||
void parse(int ac, char **av);
|
||||
void abort_intercept (int UNUSED sig);
|
||||
|
||||
/* global variables */
|
||||
unsigned major = H5_VERS_MAJOR;
|
||||
unsigned minor = H5_VERS_MINOR;
|
||||
@ -90,10 +95,24 @@ parse(int ac, char **av)
|
||||
}
|
||||
}
|
||||
|
||||
/* Handler for SIGABRT - catch the abort signal supposedly from check_version()
|
||||
* and exit(134). 134 would have been the return code in Unix systems.
|
||||
* This handles the abort signal instead letting it interrupt the OS because
|
||||
* some systems may produce extra messages and/or produce core dump.
|
||||
* This tries to eliminate those side effects.
|
||||
*/
|
||||
void
|
||||
abort_intercept (int UNUSED sig)
|
||||
{
|
||||
HDexit(134);
|
||||
}
|
||||
|
||||
int
|
||||
main(int ac, char **av)
|
||||
{
|
||||
parse(ac, av);
|
||||
HDsignal(SIGABRT, &abort_intercept);
|
||||
H5check_version(major, minor, release);
|
||||
HDsignal(SIGABRT, SIG_DFL);
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user