]> Savannah Git Hosting - gnulib.git/commitdiff
fatal-signal: Use module 'thread-optim'.
authorBruno Haible <bruno@clisp.org>
Sat, 8 Aug 2020 20:05:25 +0000 (22:05 +0200)
committerBruno Haible <bruno@clisp.org>
Sat, 8 Aug 2020 20:05:25 +0000 (22:05 +0200)
* 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.

ChangeLog
lib/fatal-signal.c
modules/fatal-signal

index ee9b6ced26fdea495b0fb24564f01a2f0e69266c..37a7a073273c022a2e68deac7adde45eb2a65cd6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+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'.
index 29184e0ff21a7cce6b56e10b2902fb47a9f23c17..541c4cbf46212d3cd33840f0b9a40a86a8cbc9dd 100644 (file)
@@ -27,6 +27,7 @@
 #include <unistd.h>
 
 #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);
 }
 
 
index de53de7c8b9a92d427d88e441399d93a159eb6ab..7029687625dfacdaca48f6f2519180012d3c5008 100644 (file)
@@ -13,6 +13,7 @@ stdbool
 unistd
 sigaction
 lock
+thread-optim
 sigprocmask
 raise