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:
parent
e5f1676d24
commit
9257344ebc
@ -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
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user