diff options
| author | shmel1k <[email protected]> | 2022-09-02 12:44:59 +0300 | 
|---|---|---|
| committer | shmel1k <[email protected]> | 2022-09-02 12:44:59 +0300 | 
| commit | 90d450f74722da7859d6f510a869f6c6908fd12f (patch) | |
| tree | 538c718dedc76cdfe37ad6d01ff250dd930d9278 /contrib/libs/libf2c/sig_die.c | |
| parent | 01f64c1ecd0d4ffa9e3a74478335f1745f26cc75 (diff) | |
[] add metering mode to CLI
Diffstat (limited to 'contrib/libs/libf2c/sig_die.c')
| -rw-r--r-- | contrib/libs/libf2c/sig_die.c | 51 | 
1 files changed, 51 insertions, 0 deletions
diff --git a/contrib/libs/libf2c/sig_die.c b/contrib/libs/libf2c/sig_die.c new file mode 100644 index 00000000000..63a73d91183 --- /dev/null +++ b/contrib/libs/libf2c/sig_die.c @@ -0,0 +1,51 @@ +#include "stdio.h" +#include "signal.h" + +#ifndef SIGIOT +#ifdef SIGABRT +#define SIGIOT SIGABRT +#endif +#endif + +#ifdef KR_headers +void sig_die(s, kill) char *s; int kill; +#else +#include "stdlib.h" +#ifdef __cplusplus +extern "C" { +#endif +#ifdef __cplusplus +extern "C" { +#endif + extern void f_exit(void); + +void sig_die(const char *s, int kill) +#endif +{ +	/* print error message, then clear buffers */ +	fprintf(stderr, "%s\n", s); + +	if(kill) +		{ +		fflush(stderr); +		f_exit(); +		fflush(stderr); +		/* now get a core */ +#ifdef SIGIOT +		signal(SIGIOT, SIG_DFL); +#endif +		abort(); +		} +	else { +#ifdef NO_ONEXIT +		f_exit(); +#endif +		exit(1); +		} +	} +#ifdef __cplusplus +} +#endif +#ifdef __cplusplus +} +#endif  | 
