29 lines
428 B
C
29 lines
428 B
C
#include <u.h>
|
|
#include <libc.h>
|
|
#include "cocoa-thread.h"
|
|
|
|
#ifndef TRY_LIBTHREAD
|
|
|
|
static pthread_mutex_t initlock = PTHREAD_MUTEX_INITIALIZER;
|
|
|
|
void
|
|
qlock(QLock *q)
|
|
{
|
|
if(q->init == 0){
|
|
pthread_mutex_lock(&initlock);
|
|
if(q->init == 0){
|
|
pthread_mutex_init(&q->m, nil);
|
|
q->init = 1;
|
|
}
|
|
pthread_mutex_unlock(&initlock);
|
|
}
|
|
pthread_mutex_lock(&q->m);
|
|
}
|
|
|
|
void
|
|
qunlock(QLock *q)
|
|
{
|
|
pthread_mutex_unlock(&q->m);
|
|
}
|
|
#endif
|