Skip to content

Commit

Permalink
glapi: remove u_mutex wrapper code, use c99 thread mutexes directly
Browse files Browse the repository at this point in the history
v2: fix initializer mistake spotted by Chia-I Wu.

Reviewed-by: Chia-I Wu <[email protected]>
  • Loading branch information
brianpaul committed Mar 6, 2014
1 parent 846a7e8 commit 84094a2
Show file tree
Hide file tree
Showing 5 changed files with 14 additions and 24 deletions.
10 changes: 5 additions & 5 deletions src/mapi/mapi.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

Expand All @@ -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;
Expand All @@ -115,7 +115,7 @@ mapi_init(const char *spec)

mapi_num_stubs = count;

u_mutex_unlock(mutex);
mtx_unlock(&mutex);
}

/**
Expand Down
6 changes: 3 additions & 3 deletions src/mapi/stub.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
struct mapi_stub *stub = NULL;
int count, i;

u_mutex_lock(dynamic_mutex);
mtx_lock(&dynamic_mutex);

if (generate)
assert(!stub_find_public(name));
Expand All @@ -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;
}
Expand Down
6 changes: 3 additions & 3 deletions src/mapi/u_current.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -159,7 +159,7 @@ u_current_init(void)
if (ThreadSafe)
return;

u_mutex_lock(ThreadCheckMutex);
mtx_lock(&ThreadCheckMutex);
if (firstCall) {
u_current_init_tsd();

Expand All @@ -171,7 +171,7 @@ u_current_init(void)
u_current_set_table(NULL);
u_current_set_context(NULL);
}
u_mutex_unlock(ThreadCheckMutex);
mtx_unlock(&ThreadCheckMutex);
}

#else
Expand Down
6 changes: 3 additions & 3 deletions src/mapi/u_execmem.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down Expand Up @@ -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;
Expand All @@ -137,7 +137,7 @@ u_execmem_alloc(unsigned int size)
head += size;

bail:
u_mutex_unlock(exec_mutex);
mtx_unlock(&exec_mutex);

return addr;
}
Expand Down
10 changes: 0 additions & 10 deletions src/mapi/u_thread.h
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down

0 comments on commit 84094a2

Please sign in to comment.