+2020-08-08 Bruno Haible <bruno@clisp.org>
+
+ fatal-signal: Use module 'thread-optim'.
+ * lib/fatal-signal.c: Include thread-optim.h.
+ (at_fatal_signal, block_fatal_signals, unblock_fatal_signals): Use IF_MT
+ macro.
+ * modules/fatal-signal (Depends-on): Add thread-optim.
+
2020-08-08 Bruno Haible <bruno@clisp.org>
New module 'thread-optim'.
#include <unistd.h>
#include "glthread/lock.h"
+#include "thread-optim.h"
#include "sig-handler.h"
#include "xalloc.h"
void
at_fatal_signal (action_t action)
{
- gl_lock_lock (at_fatal_signal_lock);
+ IF_MT_DECL;
+
+ IF_MT gl_lock_lock (at_fatal_signal_lock);
static bool cleanup_initialized = false;
if (!cleanup_initialized)
actions[actions_count].action = action;
actions_count++;
- gl_lock_unlock (at_fatal_signal_lock);
+ IF_MT gl_lock_unlock (at_fatal_signal_lock);
}
void
block_fatal_signals (void)
{
- gl_lock_lock (fatal_signals_block_lock);
+ IF_MT_DECL;
+
+ IF_MT gl_lock_lock (fatal_signals_block_lock);
if (fatal_signals_block_counter++ == 0)
{
sigprocmask (SIG_BLOCK, &fatal_signal_set, NULL);
}
- gl_lock_unlock (fatal_signals_block_lock);
+ IF_MT gl_lock_unlock (fatal_signals_block_lock);
}
/* Stop delaying the catchable fatal signals. */
void
unblock_fatal_signals (void)
{
- gl_lock_lock (fatal_signals_block_lock);
+ IF_MT_DECL;
+
+ IF_MT gl_lock_lock (fatal_signals_block_lock);
if (fatal_signals_block_counter == 0)
/* There are more calls to unblock_fatal_signals() than to
sigprocmask (SIG_UNBLOCK, &fatal_signal_set, NULL);
}
- gl_lock_unlock (fatal_signals_block_lock);
+ IF_MT gl_lock_unlock (fatal_signals_block_lock);
}