Blame


1 a287dbab 2011-09-06 rsc #include <u.h>
2 a287dbab 2011-09-06 rsc #include <libc.h>
3 a287dbab 2011-09-06 rsc #include "cocoa-thread.h"
4 a287dbab 2011-09-06 rsc
5 d0a596c5 2011-10-12 rsc #ifndef TRY_LIBTHREAD
6 d0a596c5 2011-10-12 rsc
7 a287dbab 2011-09-06 rsc static pthread_mutex_t initlock = PTHREAD_MUTEX_INITIALIZER;
8 a287dbab 2011-09-06 rsc
9 a287dbab 2011-09-06 rsc void
10 a287dbab 2011-09-06 rsc qlock(QLock *q)
11 a287dbab 2011-09-06 rsc {
12 a287dbab 2011-09-06 rsc if(q->init == 0){
13 a287dbab 2011-09-06 rsc pthread_mutex_lock(&initlock);
14 a287dbab 2011-09-06 rsc if(q->init == 0){
15 a287dbab 2011-09-06 rsc pthread_mutex_init(&q->m, nil);
16 a287dbab 2011-09-06 rsc q->init = 1;
17 a287dbab 2011-09-06 rsc }
18 a287dbab 2011-09-06 rsc pthread_mutex_unlock(&initlock);
19 a287dbab 2011-09-06 rsc }
20 a287dbab 2011-09-06 rsc pthread_mutex_lock(&q->m);
21 a287dbab 2011-09-06 rsc }
22 a287dbab 2011-09-06 rsc
23 a287dbab 2011-09-06 rsc void
24 a287dbab 2011-09-06 rsc qunlock(QLock *q)
25 a287dbab 2011-09-06 rsc {
26 a287dbab 2011-09-06 rsc pthread_mutex_unlock(&q->m);
27 a287dbab 2011-09-06 rsc }
28 d0a596c5 2011-10-12 rsc #endif