aboutsummaryrefslogtreecommitdiff
path: root/src/lib9/lock-pthread.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib9/lock-pthread.c')
-rw-r--r--src/lib9/lock-pthread.c55
1 files changed, 0 insertions, 55 deletions
diff --git a/src/lib9/lock-pthread.c b/src/lib9/lock-pthread.c
deleted file mode 100644
index eb3ea21d..00000000
--- a/src/lib9/lock-pthread.c
+++ /dev/null
@@ -1,55 +0,0 @@
-#include <u.h>
-#include <unistd.h>
-#include <sys/time.h>
-#include <sched.h>
-#include <errno.h>
-#include <libc.h>
-
-static pthread_mutex_t initmutex = PTHREAD_MUTEX_INITIALIZER;
-
-static void
-lockinit(Lock *lk)
-{
- pthread_mutexattr_t attr;
-
- pthread_mutex_lock(&initmutex);
- if(lk->init == 0){
- pthread_mutexattr_init(&attr);
- pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_NORMAL);
- pthread_mutex_init(&lk->mutex, &attr);
- pthread_mutexattr_destroy(&attr);
- lk->init = 1;
- }
- pthread_mutex_unlock(&initmutex);
-}
-
-void
-lock(Lock *lk)
-{
- if(!lk->init)
- lockinit(lk);
- if(pthread_mutex_lock(&lk->mutex) != 0)
- abort();
-}
-
-int
-canlock(Lock *lk)
-{
- int r;
-
- if(!lk->init)
- lockinit(lk);
- r = pthread_mutex_trylock(&lk->mutex);
- if(r == 0)
- return 1;
- if(r == EBUSY)
- return 0;
- abort();
-}
-
-void
-unlock(Lock *lk)
-{
- if(pthread_mutex_unlock(&lk->mutex) != 0)
- abort();
-}