down with assert, up with osi_Assert
[openafs.git] / src / lwp / lock.c
index d2897f9..ca8fc55 100644 (file)
 #include <afsconfig.h>
 #include <afs/param.h>
 
-
-#ifndef AFS_PTHREAD_ENV
+#ifdef AFS_PTHREAD_ENV
 #include <afs/afs_assert.h>
-#else /* AFS_PTHREAD_ENV */
+/* can't include this in lwp, rx hasn't built yet */
+#include <rx/rx.h>
+#else
 #include <assert.h>
-#endif /* AFS_PTHRED_ENV */
+#endif
+
 #include "lwp.h"
 #include "lock.h"
 #include <stdio.h>
@@ -46,23 +48,20 @@ Lock_Init(struct Lock *lock)
     lock->wait_states = 0;
     lock->num_waiting = 0;
 #ifdef AFS_PTHREAD_ENV
-    assert(pthread_mutex_init(&lock->mutex, (const pthread_mutexattr_t *)0) ==
-          0);
-    assert(pthread_cond_init(&lock->read_cv, (const pthread_condattr_t *)0) ==
-          0);
-    assert(pthread_cond_init(&lock->write_cv, (const pthread_condattr_t *)0)
-          == 0);
-#endif /* AFS_PTHRED_ENV */
+    MUTEX_INIT(&lock->mutex, "lock", MUTEX_DEFAULT, 0);
+    CV_INIT(&lock->read_cv, "read", CV_DEFAULT, 0);
+    CV_INIT(&lock->write_cv, "write", CV_DEFAULT, 0);
+#endif /* AFS_PTHREAD_ENV */
 }
 
 void
 Lock_Destroy(struct Lock *lock)
 {
 #ifdef AFS_PTHREAD_ENV
-    assert(pthread_mutex_destroy(&lock->mutex) == 0);
-    assert(pthread_cond_destroy(&lock->read_cv) == 0);
-    assert(pthread_cond_destroy(&lock->write_cv) == 0);
-#endif /* AFS_PTHRED_ENV */
+    MUTEX_DESTROY(&lock->mutex);
+    CV_DESTROY(&lock->read_cv);
+    CV_DESTROY(&lock->write_cv);
+#endif /* AFS_PTHREAD_ENV */
 }
 
 void
@@ -75,7 +74,7 @@ Afs_Lock_Obtain(struct Lock *lock, int how)
        do {
            lock->wait_states |= READ_LOCK;
 #ifdef AFS_PTHREAD_ENV
-           assert(pthread_cond_wait(&lock->read_cv, &lock->mutex) == 0);
+           CV_WAIT(&lock->read_cv, &lock->mutex);
 #else /* AFS_PTHREAD_ENV */
            LWP_WaitProcess(&lock->readers_reading);
 #endif /* AFS_PTHREAD_ENV */
@@ -89,7 +88,7 @@ Afs_Lock_Obtain(struct Lock *lock, int how)
        do {
            lock->wait_states |= WRITE_LOCK;
 #ifdef AFS_PTHREAD_ENV
-           assert(pthread_cond_wait(&lock->write_cv, &lock->mutex) == 0);
+           CV_WAIT(&lock->write_cv, &lock->mutex);
 #else /* AFS_PTHREAD_ENV */
            LWP_WaitProcess(&lock->excl_locked);
 #endif /* AFS_PTHREAD_ENV */
@@ -103,7 +102,7 @@ Afs_Lock_Obtain(struct Lock *lock, int how)
        do {
            lock->wait_states |= SHARED_LOCK;
 #ifdef AFS_PTHREAD_ENV
-           assert(pthread_cond_wait(&lock->write_cv, &lock->mutex) == 0);
+           CV_WAIT(&lock->write_cv, &lock->mutex);
 #else /* AFS_PTHREAD_ENV */
            LWP_WaitProcess(&lock->excl_locked);
 #endif /* AFS_PTHREAD_ENV */
@@ -117,7 +116,7 @@ Afs_Lock_Obtain(struct Lock *lock, int how)
        do {
            lock->wait_states |= WRITE_LOCK;
 #ifdef AFS_PTHREAD_ENV
-           assert(pthread_cond_wait(&lock->write_cv, &lock->mutex) == 0);
+           CV_WAIT(&lock->write_cv, &lock->mutex);
 #else /* AFS_PTHREAD_ENV */
            LWP_WaitProcess(&lock->excl_locked);
 #endif /* AFS_PTHREAD_ENV */
@@ -139,7 +138,7 @@ Afs_Lock_WakeupR(struct Lock *lock)
     if (lock->wait_states & READ_LOCK) {
        lock->wait_states &= ~READ_LOCK;
 #ifdef AFS_PTHREAD_ENV
-       assert(pthread_cond_broadcast(&lock->read_cv) == 0);
+       CV_BROADCAST(&lock->read_cv);
 #else /* AFS_PTHREAD_ENV */
        LWP_NoYieldSignal(&lock->readers_reading);
 #endif /* AFS_PTHREAD_ENV */
@@ -153,14 +152,14 @@ Afs_Lock_ReleaseR(struct Lock *lock)
     if (lock->wait_states & READ_LOCK) {
        lock->wait_states &= ~READ_LOCK;
 #ifdef AFS_PTHREAD_ENV
-       assert(pthread_cond_broadcast(&lock->read_cv) == 0);
+       CV_BROADCAST(&lock->read_cv);
 #else /* AFS_PTHREAD_ENV */
        LWP_NoYieldSignal(&lock->readers_reading);
 #endif /* AFS_PTHREAD_ENV */
     } else {
        lock->wait_states &= ~EXCL_LOCKS;
 #ifdef AFS_PTHREAD_ENV
-       assert(pthread_cond_broadcast(&lock->write_cv) == 0);
+       CV_BROADCAST(&lock->write_cv);
 #else /* AFS_PTHREAD_ENV */
        LWP_NoYieldSignal(&lock->excl_locked);
 #endif /* AFS_PTHREAD_ENV */
@@ -174,14 +173,14 @@ Afs_Lock_ReleaseW(struct Lock *lock)
     if (lock->wait_states & EXCL_LOCKS) {
        lock->wait_states &= ~EXCL_LOCKS;
 #ifdef AFS_PTHREAD_ENV
-       assert(pthread_cond_broadcast(&lock->write_cv) == 0);
+       CV_BROADCAST(&lock->write_cv);
 #else /* AFS_PTHREAD_ENV */
        LWP_NoYieldSignal(&lock->excl_locked);
 #endif /* AFS_PTHREAD_ENV */
     } else {
        lock->wait_states &= ~READ_LOCK;
 #ifdef AFS_PTHREAD_ENV
-       assert(pthread_cond_broadcast(&lock->read_cv) == 0);
+       CV_BROADCAST(&lock->read_cv);
 #else /* AFS_PTHREAD_ENV */
        LWP_NoYieldSignal(&lock->readers_reading);
 #endif /* AFS_PTHREAD_ENV */