[Mesa-dev] [PATCH 2/2] glapi: remove u_mutex wrapper code, use c99 thread mutexes directly

Brian Paul brianp at vmware.com
Wed Mar 5 15:06:09 PST 2014


---
 src/mapi/mapi.c      |   10 +++++-----
 src/mapi/stub.c      |    6 +++---
 src/mapi/u_current.c |    6 +++---
 src/mapi/u_execmem.c |    6 +++---
 src/mapi/u_thread.h  |   10 ----------
 5 files changed, 14 insertions(+), 24 deletions(-)

diff --git a/src/mapi/mapi.c b/src/mapi/mapi.c
index 56f209b..8d0baca 100644
--- a/src/mapi/mapi.c
+++ b/src/mapi/mapi.c
@@ -72,15 +72,15 @@ get_stub(const char *name, const struct mapi_stub *alias)
 void
 mapi_init(const char *spec)
 {
-   u_mutex_declare_static(mutex);
+   static mtx_t mutex = _MTX_INITIALIZER_NP;
    const char *p;
    int ver, count;
 
-   u_mutex_lock(mutex);
+   mtx_lock(&mutex);
 
    /* already initialized */
    if (mapi_num_stubs) {
-      u_mutex_unlock(mutex);
+      mtx_unlock(&mutex);
       return;
    }
 
@@ -90,7 +90,7 @@ mapi_init(const char *spec)
    /* parse version string */
    ver = atoi(p);
    if (ver != 1) {
-      u_mutex_unlock(mutex);
+      mtx_unlock(&mutex);
       return;
    }
    p += strlen(p) + 1;
@@ -115,7 +115,7 @@ mapi_init(const char *spec)
 
    mapi_num_stubs = count;
 
-   u_mutex_unlock(mutex);
+   mtx_unlock(&mutex);
 }
 
 /**
diff --git a/src/mapi/stub.c b/src/mapi/stub.c
index acd2c0a..b5db597 100644
--- a/src/mapi/stub.c
+++ b/src/mapi/stub.c
@@ -126,11 +126,11 @@ stub_add_dynamic(const char *name)
 struct mapi_stub *
 stub_find_dynamic(const char *name, int generate)
 {
-   u_mutex_declare_static(dynamic_mutex);
+   static mtx_t dynamic_mutex = _MTX_INITIALIZER_NP PTHREAD_MUTEX_INITIALIZER;
    struct mapi_stub *stub = NULL;
    int count, i;
    
-   u_mutex_lock(dynamic_mutex);
+   mtx_lock(&dynamic_mutex);
 
    if (generate)
       assert(!stub_find_public(name));
@@ -147,7 +147,7 @@ stub_find_dynamic(const char *name, int generate)
    if (generate && !stub)
          stub = stub_add_dynamic(name);
 
-   u_mutex_unlock(dynamic_mutex);
+   mtx_unlock(&dynamic_mutex);
 
    return stub;
 }
diff --git a/src/mapi/u_current.c b/src/mapi/u_current.c
index 0721338..9c3537a 100644
--- a/src/mapi/u_current.c
+++ b/src/mapi/u_current.c
@@ -144,7 +144,7 @@ u_current_init_tsd(void)
 /**
  * Mutex for multithread check.
  */
-u_mutex_declare_static(ThreadCheckMutex);
+static mtx_t ThreadCheckMutex = _MTX_INITIALIZER_NP;
 
 /**
  * We should call this periodically from a function such as glXMakeCurrent
@@ -159,7 +159,7 @@ u_current_init(void)
    if (ThreadSafe)
       return;
 
-   u_mutex_lock(ThreadCheckMutex);
+   mtx_lock(&ThreadCheckMutex);
    if (firstCall) {
       u_current_init_tsd();
 
@@ -171,7 +171,7 @@ u_current_init(void)
       u_current_set(NULL);
       u_current_set_user(NULL);
    }
-   u_mutex_unlock(ThreadCheckMutex);
+   mtx_unlock(&ThreadCheckMutex);
 }
 
 #else
diff --git a/src/mapi/u_execmem.c b/src/mapi/u_execmem.c
index 3573652..ac1cae0 100644
--- a/src/mapi/u_execmem.c
+++ b/src/mapi/u_execmem.c
@@ -39,7 +39,7 @@
 
 #define EXEC_MAP_SIZE (4*1024)
 
-u_mutex_declare_static(exec_mutex);
+static mtx_t exec_mutex = _MTX_INITIALIZER_NP;
 
 static unsigned int head = 0;
 
@@ -123,7 +123,7 @@ u_execmem_alloc(unsigned int size)
 {
    void *addr = NULL;
 
-   u_mutex_lock(exec_mutex);
+   mtx_lock(&exec_mutex);
 
    if (!init_map())
       goto bail;
@@ -137,7 +137,7 @@ u_execmem_alloc(unsigned int size)
    head += size;
 
 bail:
-   u_mutex_unlock(exec_mutex);
+   mtx_unlock(&exec_mutex);
 
    return addr;
 }
diff --git a/src/mapi/u_thread.h b/src/mapi/u_thread.h
index 78f2269..57c3b07 100644
--- a/src/mapi/u_thread.h
+++ b/src/mapi/u_thread.h
@@ -79,16 +79,6 @@ struct u_tsd {
    unsigned initMagic;
 };
 
-typedef mtx_t u_mutex;
-
-#define u_mutex_declare_static(name) \
-   static u_mutex name = _MTX_INITIALIZER_NP
-
-#define u_mutex_init(name)    mtx_init(&(name), mtx_plain)
-#define u_mutex_destroy(name) mtx_destroy(&(name))
-#define u_mutex_lock(name)    (void) mtx_lock(&(name))
-#define u_mutex_unlock(name)  (void) mtx_unlock(&(name))
-
 
 static INLINE unsigned long
 u_thread_self(void)
-- 
1.7.10.4



More information about the mesa-dev mailing list