From 3c0fbfafe563b7b312d60c42c0d58a3a1f4d5930 Mon Sep 17 00:00:00 2001 From: rpj Date: Wed, 7 Feb 2001 13:08:54 +0000 Subject: Change the purpose of rwlock6 test and add new rwlock7 test. --- tests/rwlock6.c | 110 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 55 insertions(+), 55 deletions(-) (limited to 'tests/rwlock6.c') diff --git a/tests/rwlock6.c b/tests/rwlock6.c index 8a75b83..97742b1 100644 --- a/tests/rwlock6.c +++ b/tests/rwlock6.c @@ -1,65 +1,65 @@ -/* - * rwlock6.c - * - * Check that writer locks have priority. - * - * Depends on API functions: - * pthread_rwlock_rdlock() - * pthread_rwlock_wrlock() - * pthread_rwlock_unlock() - */ +/* + * rwlock6.c + * + * Check that writer locks have priority. + * + * Depends on API functions: + * pthread_rwlock_rdlock() + * pthread_rwlock_wrlock() + * pthread_rwlock_unlock() + */ -#include "test.h" - -static pthread_rwlock_t rwlock1 = PTHREAD_RWLOCK_INITIALIZER; +#include "test.h" -static int bankAccount; +static pthread_rwlock_t rwlock1 = PTHREAD_RWLOCK_INITIALIZER; -void * wrfunc(void * arg) -{ - assert(pthread_rwlock_wrlock(&rwlock1) == 0); - Sleep(1000); - bankAccount += 10; - assert(pthread_rwlock_unlock(&rwlock1) == 0); +static int bankAccount; - return((void *) bankAccount); -} - -void * rdfunc(void * arg) -{ - int ba = 0; +void * wrfunc(void * arg) +{ + assert(pthread_rwlock_wrlock(&rwlock1) == 0); + Sleep(1000); + bankAccount += 10; + assert(pthread_rwlock_unlock(&rwlock1) == 0); - assert(pthread_rwlock_rdlock(&rwlock1) == 0); - ba = bankAccount; - assert(pthread_rwlock_unlock(&rwlock1) == 0); + return ((void *) bankAccount); +} - ba += 10; - return((void *) ba); -} - -int -main() -{ - pthread_t wrt1; - pthread_t wrt2; - pthread_t rdt; - int wr1Result = 0; - int wr2Result = 0; - int rdResult = 0; +void * rdfunc(void * arg) +{ + int ba = 0; - assert(pthread_create(&wrt1, NULL, wrfunc, NULL) == 0); - Sleep(200); - assert(pthread_create(&rdt, NULL, rdfunc, NULL) == 0); - Sleep(200); - assert(pthread_create(&wrt2, NULL, wrfunc, NULL) == 0); + assert(pthread_rwlock_rdlock(&rwlock1) == 0); + ba = bankAccount; + assert(pthread_rwlock_unlock(&rwlock1) == 0); - assert(pthread_join(wrt1, (void **) &wr1Result) == 0); - assert(pthread_join(wrt2, (void **) &wr2Result) == 0); - assert(pthread_join(rdt, (void **) &rdResult) == 0); + ba += 10; + return ((void *) ba); +} - assert(wr1Result == 10); - assert(wr2Result == 20); - assert(rdResult == 20); +int +main() +{ + pthread_t wrt1; + pthread_t wrt2; + pthread_t rdt; + int wr1Result = 0; + int wr2Result = 0; + int rdResult = 0; - return 0; -} + assert(pthread_create(&wrt1, NULL, wrfunc, NULL) == 0); + Sleep(200); + assert(pthread_create(&rdt, NULL, rdfunc, NULL) == 0); + Sleep(200); + assert(pthread_create(&wrt2, NULL, wrfunc, NULL) == 0); + + assert(pthread_join(wrt1, (void **) &wr1Result) == 0); + assert(pthread_join(wrt2, (void **) &wr2Result) == 0); + assert(pthread_join(rdt, (void **) &rdResult) == 0); + + assert(wr1Result == 10); + assert(wr2Result == 20); + assert(rdResult == 20); + + return 0; +} -- cgit v1.2.3