8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-23 12:43:03 +01:00

Take care about posix SS

This commit is contained in:
alexpeshkoff 2007-08-17 07:20:44 +00:00
parent e5f1676d24
commit 9257344ebc

View File

@ -565,15 +565,17 @@ static void CLIB_ROUTINE signal_action(int number, siginfo_t *siginfo, void *con
* Checkin with various signal handlers.
*
**************************************/
/* Invoke everybody who may have expressed an interest. */
#ifndef SUPERSERVER
// Save signal delivery status.
const bool restoreState = inSignalHandler;
inSignalHandler = true;
sigset_t set, localSavedSigmask;
sigfillset(&set);
sigprocmask(SIG_BLOCK, &set, &localSavedSigmask);
#endif
// Invoke everybody who may have expressed an interest.
for (SIG sig = signals; sig; sig = sig->sig_next)
{
if (sig->sig_signal == number)
@ -604,8 +606,9 @@ static void CLIB_ROUTINE signal_action(int number, siginfo_t *siginfo, void *con
}
}
#ifndef SUPERSERVER
sigprocmask(SIG_SETMASK, &localSavedSigmask, NULL);
inSignalHandler = restoreState;
#endif
}