Make avltree.o state thread-local.
authorMatt Birkholz <puck@birchwood-abbey.net>
Fri, 5 Dec 2014 00:12:57 +0000 (17:12 -0700)
committerMatt Birkholz <puck@birchwood-abbey.net>
Thu, 26 Nov 2015 08:09:46 +0000 (01:09 -0700)
src/microcode/avltree.c
src/microcode/avltree.h

index e4bf2248e2f172475ea5dce7309d870d52ca81d8..982838e63434940d24b4629bb50476517c11b03e 100644 (file)
@@ -32,8 +32,8 @@ USA.
 
 extern int strcmp_ci (const char *, const char *);
 
-const char * tree_error_message = 0;
-const char * tree_error_noise = 0;
+__thread const char * tree_error_message = 0;
+__thread const char * tree_error_noise = 0;
 
 static void
 tree_error (const char * message, const char * noise)
@@ -191,7 +191,7 @@ tree_lookup (tree_node tree, const char * name)
 tree_node
 tree_build (unsigned long high, const char ** names, unsigned long value)
 {
-  static long bias = 0;
+  static __thread long bias = 0;
   if (high > 1)
     {
       tree_node tree;
index a28890cf93c575fd7172b2c937f42680ee1f60b7..ce1cb56b68f66e6d15e7617479475ba72417c056 100644 (file)
@@ -34,8 +34,8 @@ USA.
 
 #include "config.h"
 
-extern const char * tree_error_message;
-extern const char * tree_error_noise;
+extern __thread const char * tree_error_message;
+extern __thread const char * tree_error_noise;
 
 typedef struct tree_node_s * tree_node;