util: handle errors in setting of signal handler as fatal
This commit is contained in:
parent
a8167b7959
commit
5bb2bf9361
2 changed files with 7 additions and 9 deletions
14
util.c
14
util.c
|
@ -995,7 +995,7 @@ UTI_FdSetCloexec(int fd)
|
||||||
|
|
||||||
/* ================================================== */
|
/* ================================================== */
|
||||||
|
|
||||||
int
|
void
|
||||||
UTI_SetQuitSignalsHandler(void (*handler)(int))
|
UTI_SetQuitSignalsHandler(void (*handler)(int))
|
||||||
{
|
{
|
||||||
struct sigaction sa;
|
struct sigaction sa;
|
||||||
|
@ -1003,26 +1003,24 @@ UTI_SetQuitSignalsHandler(void (*handler)(int))
|
||||||
sa.sa_handler = handler;
|
sa.sa_handler = handler;
|
||||||
sa.sa_flags = SA_RESTART;
|
sa.sa_flags = SA_RESTART;
|
||||||
if (sigemptyset(&sa.sa_mask) < 0)
|
if (sigemptyset(&sa.sa_mask) < 0)
|
||||||
return 0;
|
LOG_FATAL("sigemptyset() failed");
|
||||||
|
|
||||||
#ifdef SIGINT
|
#ifdef SIGINT
|
||||||
if (sigaction(SIGINT, &sa, NULL) < 0)
|
if (sigaction(SIGINT, &sa, NULL) < 0)
|
||||||
return 0;
|
LOG_FATAL("sigaction(%d) failed", SIGINT);
|
||||||
#endif
|
#endif
|
||||||
#ifdef SIGTERM
|
#ifdef SIGTERM
|
||||||
if (sigaction(SIGTERM, &sa, NULL) < 0)
|
if (sigaction(SIGTERM, &sa, NULL) < 0)
|
||||||
return 0;
|
LOG_FATAL("sigaction(%d) failed", SIGTERM);
|
||||||
#endif
|
#endif
|
||||||
#ifdef SIGQUIT
|
#ifdef SIGQUIT
|
||||||
if (sigaction(SIGQUIT, &sa, NULL) < 0)
|
if (sigaction(SIGQUIT, &sa, NULL) < 0)
|
||||||
return 0;
|
LOG_FATAL("sigaction(%d) failed", SIGQUIT);
|
||||||
#endif
|
#endif
|
||||||
#ifdef SIGHUP
|
#ifdef SIGHUP
|
||||||
if (sigaction(SIGHUP, &sa, NULL) < 0)
|
if (sigaction(SIGHUP, &sa, NULL) < 0)
|
||||||
return 0;
|
LOG_FATAL("sigaction(%d) failed", SIGHUP);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ================================================== */
|
/* ================================================== */
|
||||||
|
|
2
util.h
2
util.h
|
@ -161,7 +161,7 @@ extern Float UTI_FloatHostToNetwork(double x);
|
||||||
/* Set FD_CLOEXEC on descriptor */
|
/* Set FD_CLOEXEC on descriptor */
|
||||||
extern int UTI_FdSetCloexec(int fd);
|
extern int UTI_FdSetCloexec(int fd);
|
||||||
|
|
||||||
extern int UTI_SetQuitSignalsHandler(void (*handler)(int));
|
extern void UTI_SetQuitSignalsHandler(void (*handler)(int));
|
||||||
|
|
||||||
/* Get directory (as an allocated string) for a path */
|
/* Get directory (as an allocated string) for a path */
|
||||||
extern char *UTI_PathToDir(const char *path);
|
extern char *UTI_PathToDir(const char *path);
|
||||||
|
|
Loading…
Reference in a new issue