smp: share: avltree.o
authorMatt Birkholz <puck@birchwood-abbey.net>
Fri, 5 Dec 2014 00:12:57 +0000 (17:12 -0700)
committerMatt Birkholz <puck@birchwood-abbey.net>
Sun, 21 Dec 2014 19:19:10 +0000 (12:19 -0700)
README.txt
src/microcode/avltree.c
src/microcode/avltree.h

index acd136bbc4900a14943bcd42b49ac17fefbaddf1..71978046c4225262b325cdd23187a641848b5515 100644 (file)
@@ -180,9 +180,11 @@ command line.  The remaining 12 belong to the 7 microcode modules and
   artutl.o:
 
   avltree.o:
-  00000008 b bias.4380
-  00000000 B tree_error_message
-  00000004 B tree_error_noise
+  00000008 b bias.4380                 __thread
+  00000000 B tree_error_message                __thread
+  00000004 B tree_error_noise          __thread
+
+       OK.  All state is thread-local now.
 
   bkpt.o:
   00000004 b One_Before
index 25761dbbef0a61eff01b5d926317b20ec2060288..ff7e19204bd98243d37346aeb609db84057b8a9e 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 2bf73675439fcb4c86a84c3e5d58ca56a34d6209..a232406566709b08e8f89f0c19eaf80f831da198 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;