From: Bruno Haible Date: Sat, 8 Aug 2020 20:05:25 +0000 (+0200) Subject: fatal-signal: Use module 'thread-optim'. X-Git-Tag: v1.0~3806 X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=f9f3407212edb967b97d14f007919e7ee0927135;p=gnulib.git 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. --- diff --git a/ChangeLog b/ChangeLog index ee9b6ced26..37a7a07327 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2020-08-08 Bruno Haible + + 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 New module 'thread-optim'. diff --git a/lib/fatal-signal.c b/lib/fatal-signal.c index 29184e0ff2..541c4cbf46 100644 --- a/lib/fatal-signal.c +++ b/lib/fatal-signal.c @@ -27,6 +27,7 @@ #include #include "glthread/lock.h" +#include "thread-optim.h" #include "sig-handler.h" #include "xalloc.h" @@ -213,7 +214,9 @@ gl_lock_define_initialized (static, at_fatal_signal_lock) 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) @@ -260,7 +263,7 @@ at_fatal_signal (action_t action) actions[actions_count].action = action; actions_count++; - gl_lock_unlock (at_fatal_signal_lock); + IF_MT gl_lock_unlock (at_fatal_signal_lock); } @@ -300,7 +303,9 @@ static unsigned int fatal_signals_block_counter = 0; 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) { @@ -308,14 +313,16 @@ block_fatal_signals (void) 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 @@ -327,7 +334,7 @@ unblock_fatal_signals (void) sigprocmask (SIG_UNBLOCK, &fatal_signal_set, NULL); } - gl_lock_unlock (fatal_signals_block_lock); + IF_MT gl_lock_unlock (fatal_signals_block_lock); } diff --git a/modules/fatal-signal b/modules/fatal-signal index de53de7c8b..7029687625 100644 --- a/modules/fatal-signal +++ b/modules/fatal-signal @@ -13,6 +13,7 @@ stdbool unistd sigaction lock +thread-optim sigprocmask raise