mapi: remove u_thread.h
authorBrian Paul <brianp@vmware.com>
Thu, 5 Mar 2015 02:17:57 +0000 (19:17 -0700)
committerBrian Paul <brianp@vmware.com>
Thu, 5 Mar 2015 13:59:43 +0000 (06:59 -0700)
Just use c11 threads directly.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: José Fonseca <jfonseca@vmware.com>
src/mapi/Makefile.sources
src/mapi/glapi/glapi.h
src/mapi/mapi.c
src/mapi/stub.c
src/mapi/u_current.c
src/mapi/u_execmem.c

index 4e92f5edfeb187e254f7b67b44c41ea92a44e3ed..07063f390c9ac030ab143b11a3714409f1efd9f2 100644 (file)
@@ -18,8 +18,7 @@ MAPI_UTIL_FILES = \
        u_current.c \
        u_current.h \
        u_execmem.c \
-       u_execmem.h \
-       u_thread.h
+       u_execmem.h
 
 MAPI_BRIDGE_FILES = \
        entry.c \
index b2d6632493c7176a97c71e46cb91e82173266e5c..8d991fb3b8a8382e487c04abba88f4f7323a99e4 100644 (file)
@@ -45,7 +45,6 @@
 #define _GLAPI_H
 
 #include "util/macros.h"
-#include "u_thread.h"
 
 
 #ifdef __cplusplus
index aa6b91b42c748ed06ce8d3f1296c797b6c0f53f8..c235adc4ab3018ea441823ca812fa075c278553d 100644 (file)
@@ -29,7 +29,6 @@
 #include <string.h>
 
 #include "u_current.h"
-#include "u_thread.h"
 #include "mapi.h"
 #include "stub.h"
 #include "table.h"
index 953b6c75c3198536d3dcb0a8f9a81a862241860e..05436bab6d3c90c8b677156473a3d303b24d4bce 100644 (file)
 #include <stdlib.h>
 #include <string.h>
 #include <assert.h>
+#include "c11/threads.h"
 
 #include "util/macros.h"
 #include "u_current.h"
-#include "u_thread.h"
 #include "entry.h"
 #include "stub.h"
 #include "table.h"
@@ -54,16 +54,8 @@ static int next_dynamic_slot = MAPI_TABLE_NUM_STATIC;
 void
 stub_init_once(void)
 {
-#ifdef HAVE_PTHREAD
-   static pthread_once_t once = PTHREAD_ONCE_INIT;
-   pthread_once(&once, entry_patch_public);
-#else
-   static int first = 1;
-   if (first) {
-      first = 0;
-      entry_patch_public();
-   }
-#endif
+   static once_flag flag = ONCE_FLAG_INIT;
+   call_once(&flag, entry_patch_public);
 }
 
 static int
index 036572483c2c542937a6bdd1d97c5b0b53508b80..7e7e275f2e37f8a02f86c5c30878dc3db49629c5 100644 (file)
@@ -48,8 +48,8 @@
  *                 drivers!  No changes to the public glapi interface.
  */
 
+#include "c11/threads.h"
 #include "u_current.h"
-#include "u_thread.h"
 
 #ifndef MAPI_MODE_UTIL
 
@@ -112,8 +112,8 @@ struct mapi_table *u_current_table =
    (struct mapi_table *) table_noop_array;
 void *u_current_context;
 
-struct u_tsd u_current_table_tsd;
-static struct u_tsd u_current_context_tsd;
+tss_t u_current_table_tsd;
+static tss_t u_current_context_tsd;
 static int ThreadSafe;
 
 #endif /* defined(GLX_USE_TLS) */
@@ -124,8 +124,8 @@ void
 u_current_destroy(void)
 {
 #if !defined(GLX_USE_TLS)
-   u_tsd_destroy(&u_current_table_tsd);
-   u_tsd_destroy(&u_current_context_tsd);
+   tss_delete(u_current_table_tsd);
+   tss_delete(u_current_context_tsd);
 #endif
 }
 
@@ -135,8 +135,8 @@ u_current_destroy(void)
 static void
 u_current_init_tsd(void)
 {
-   u_tsd_init(&u_current_table_tsd);
-   u_tsd_init(&u_current_context_tsd);
+   tss_create(&u_current_table_tsd, NULL);
+   tss_create(&u_current_context_tsd, NULL);
 }
 
 /**
@@ -233,7 +233,7 @@ u_current_set_context(const void *ptr)
 #if defined(GLX_USE_TLS)
    u_current_context = (void *) ptr;
 #else
-   u_tsd_set(&u_current_context_tsd, (void *) ptr);
+   tss_set(u_current_context_tsd, (void *) ptr);
    u_current_context = (ThreadSafe) ? NULL : (void *) ptr;
 #endif
 }
@@ -249,9 +249,7 @@ u_current_get_context_internal(void)
 #if defined(GLX_USE_TLS)
    return u_current_context;
 #else
-   return (ThreadSafe)
-      ? u_tsd_get(&u_current_context_tsd)
-      : u_current_context;
+   return ThreadSafe ? tss_get(u_current_context_tsd) : u_current_context;
 #endif
 }
 
@@ -273,7 +271,7 @@ u_current_set_table(const struct mapi_table *tbl)
 #if defined(GLX_USE_TLS)
    u_current_table = (struct mapi_table *) tbl;
 #else
-   u_tsd_set(&u_current_table_tsd, (void *) tbl);
+   tss_set(u_current_table_tsd, (void *) tbl);
    u_current_table = (ThreadSafe) ? NULL : (void *) tbl;
 #endif
 }
@@ -287,7 +285,9 @@ u_current_get_table_internal(void)
 #if defined(GLX_USE_TLS)
    return u_current_table;
 #else
-   return (struct mapi_table *) ((ThreadSafe) ?
-         u_tsd_get(&u_current_table_tsd) : (void *) u_current_table);
+   if (ThreadSafe)
+      return (struct mapi_table *) tss_get(u_current_table_tsd);
+   else
+      return (struct mapi_table *) u_current_table;
 #endif
 }
index ad6427b3e4314fccc364324a12d4e7694dff5a9d..89d5c1d08d5338b7262aa3a80bffb4d243839d59 100644 (file)
@@ -33,7 +33,7 @@
 
 
 #include "c99_compat.h"
-#include "u_thread.h"
+#include "c11/threads.h"
 #include "u_execmem.h"