4#include "Stroika/Foundation/StroikaPreComp.h"
8#include "SignalBlock.h"
22ScopedBlockCurrentThreadSignal::ScopedBlockCurrentThreadSignal ()
25#if USE_NOISY_TRACE_IN_THIS_MODULE_
26 DbgTrace (L
"ScopedBlockCurrentThreadSignal blocking signals all signals"_f);
29 Verify (sigemptyset (&mySet) == 0);
30 Verify (sigfillset (&mySet) == 0);
31 Verify (sigemptyset (&fRestoreMask_) == 0);
32 Verify (::pthread_sigmask (SIG_BLOCK, &mySet, &fRestoreMask_) == 0);
35ScopedBlockCurrentThreadSignal::ScopedBlockCurrentThreadSignal (SignalID signal)
38#if USE_NOISY_TRACE_IN_THIS_MODULE_
39 DbgTrace (
"ScopedBlockCurrentThreadSignal blocking signals for {}"_f, SignalToName (signal).);
42 Verify (sigemptyset (&mySet) == 0);
43 Verify (sigaddset (&mySet, signal) == 0);
44 Verify (sigemptyset (&fRestoreMask_) == 0);
45 Verify (::pthread_sigmask (SIG_BLOCK, &mySet, &fRestoreMask_) == 0);
48ScopedBlockCurrentThreadSignal::~ScopedBlockCurrentThreadSignal ()
50#if USE_NOISY_TRACE_IN_THIS_MODULE_
51 DbgTrace (L
"ScopedBlockCurrentThreadSignal restoring signals"_f);
53 Verify (::pthread_sigmask (SIG_SETMASK, &fRestoreMask_,
nullptr) == 0);