diff options
Diffstat (limited to 'ndb/src/kernel/ndb-main/Main.cpp')
-rw-r--r-- | ndb/src/kernel/ndb-main/Main.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/ndb/src/kernel/ndb-main/Main.cpp b/ndb/src/kernel/ndb-main/Main.cpp index 3cc1901c966..7fdb32e5893 100644 --- a/ndb/src/kernel/ndb-main/Main.cpp +++ b/ndb/src/kernel/ndb-main/Main.cpp @@ -228,16 +228,25 @@ systemInfo(const Configuration & config, const LogLevel & logLevel){ void catchsigs(bool ignore){ #if ! defined NDB_SOFTOSE && !defined NDB_OSE + +#if defined SIGRTMIN + #define MAX_SIG_CATCH SIGRTMIN +#elif defined NSIG + #define MAX_SIG_CATCH NSIG +#else + #error "neither SIGRTMIN or NSIG is defined on this platform, please report bug at bugs.mysql.com" +#endif + // Makes the main process catch process signals, eg installs a // handler named "handler". "handler" will then be called is instead // of the defualt process signal handler) if(ignore){ - for(int i = 1; i<SIGRTMIN; i++){ + for(int i = 1; i < MAX_SIG_CATCH; i++){ if(i != SIGCHLD) signal(i, SIG_IGN); - } + } } else { - for(int i = 1; i<SIGRTMIN; i++){ + for(int i = 1; i < MAX_SIG_CATCH; i++){ signal(i, handler); } } |