diff options
Diffstat (limited to 'pthreads/tests/mutex7e.c')
-rw-r--r-- | pthreads/tests/mutex7e.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/pthreads/tests/mutex7e.c b/pthreads/tests/mutex7e.c index 854789b9b..80981b3e1 100644 --- a/pthreads/tests/mutex7e.c +++ b/pthreads/tests/mutex7e.c @@ -53,7 +53,7 @@ #include "test.h" -static int lockCount = 0; +static int lockCount; static pthread_mutex_t mutex; static pthread_mutexattr_t mxAttr; @@ -65,7 +65,6 @@ void * locker(void * arg) assert(pthread_mutex_trylock(&mutex) == EBUSY); lockCount++; assert(pthread_mutex_unlock(&mutex) == 0); - assert(pthread_mutex_unlock(&mutex) == EPERM); return (void *) 555; } @@ -74,10 +73,14 @@ int main() { pthread_t t; - int result = 0; + void* result = (void*)0; int mxType = -1; assert(pthread_mutexattr_init(&mxAttr) == 0); + + BEGIN_MUTEX_STALLED_ROBUST(mxAttr) + + lockCount = 0; assert(pthread_mutexattr_settype(&mxAttr, PTHREAD_MUTEX_ERRORCHECK) == 0); assert(pthread_mutexattr_gettype(&mxAttr, &mxType) == 0); assert(mxType == PTHREAD_MUTEX_ERRORCHECK); @@ -86,12 +89,15 @@ main() assert(pthread_create(&t, NULL, locker, NULL) == 0); - assert(pthread_join(t, (void **) &result) == 0); - assert(result == 555); + assert(pthread_join(t, &result) == 0); + assert((int)(size_t)result == 555); assert(lockCount == 2); assert(pthread_mutex_destroy(&mutex) == 0); + + END_MUTEX_STALLED_ROBUST(mxAttr) + assert(pthread_mutexattr_destroy(&mxAttr) == 0); exit(0); |