Make uxsig.o state thread-local.
authorMatt Birkholz <puck@birchwood-abbey.net>
Sun, 19 Jul 2015 20:56:10 +0000 (13:56 -0700)
committerMatt Birkholz <puck@birchwood-abbey.net>
Thu, 26 Nov 2015 08:09:47 +0000 (01:09 -0700)
Most of this module's variables are read-only after initialization.
Make blocked_signals and buffer thread-local.

src/microcode/uxsig.c

index 1dc7fd303142439bf3ad43f8cfaba6281730bd81..66898237ba9fda981b35e158544ea07a816626cc 100644 (file)
@@ -24,7 +24,7 @@ USA.
 
 */
 
-#include "scheme.h"
+#include "prims.h"
 #include "option.h"
 #include "ux.h"
 #include "ossig.h"
@@ -150,7 +150,7 @@ preserve_signal_mask (void)
     ((sizeof (sigset_t)), save_signal_mask, restore_signal_mask);
 }
 
-static sigset_t blocked_signals;
+static __thread sigset_t blocked_signals;
 
 void
 block_signals (void)
@@ -295,7 +295,7 @@ find_signal_descriptor (int signo)
 const char *
 find_signal_name (int signo)
 {
-  static char buffer [32];
+  static __thread char buffer [32];
   struct signal_descriptor * descriptor = (find_signal_descriptor (signo));
   if (descriptor != 0)
     return (descriptor -> name);