diff options
author | Simon Rettberg | 2013-09-17 18:38:37 +0200 |
---|---|---|
committer | Simon Rettberg | 2013-09-17 18:38:37 +0200 |
commit | 5c8aadc590a7ce851cbbb6dd18e40b6ffcf94ba5 (patch) | |
tree | 177c4149ab13cb542c787c13e3499c545c8393c4 /src/server/helper.c | |
parent | [SERVER] Properly decrease uplink.queueLen when removing a client (diff) | |
download | dnbd3-5c8aadc590a7ce851cbbb6dd18e40b6ffcf94ba5.tar.gz dnbd3-5c8aadc590a7ce851cbbb6dd18e40b6ffcf94ba5.tar.xz dnbd3-5c8aadc590a7ce851cbbb6dd18e40b6ffcf94ba5.zip |
[SERVER] Block signals on network threads
Diffstat (limited to 'src/server/helper.c')
-rw-r--r-- | src/server/helper.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/server/helper.c b/src/server/helper.c index 6c0e822..8070fa0 100644 --- a/src/server/helper.c +++ b/src/server/helper.c @@ -4,6 +4,7 @@ #include <stdlib.h> #include <assert.h> #include <sys/prctl.h> // For thread names +#include <signal.h> #include "../config.h" @@ -128,3 +129,14 @@ void setThreadName(char *name) if ( strlen( name ) > 16 ) name[16] = '\0'; prctl( PR_SET_NAME, (unsigned long)name, 0, 0, 0 ); } + +void blockNoncriticalSignals() +{ + sigset_t sigmask; + sigemptyset(&sigmask); + sigaddset(&sigmask, SIGUSR1); + sigaddset(&sigmask, SIGUSR2); + sigaddset(&sigmask, SIGHUP); + sigaddset(&sigmask, SIGPIPE); + pthread_sigmask(SIG_BLOCK, &sigmask, NULL); +} |