diff options
author | rpj <rpj> | 2001-02-07 03:48:23 +0000 |
---|---|---|
committer | rpj <rpj> | 2001-02-07 03:48:23 +0000 |
commit | 2f4a1905d1a8c424900a8615ec730f7637482525 (patch) | |
tree | 9c35a724f9d033b81afb26c83612a2d88208a073 /tests | |
parent | 9a59a1b4611cbd4b1fcf7549a97dc2cbe340b794 (diff) |
Revamp read-write locks and update cond vars.
See ChangeLog.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/rwlock6.c | 110 |
1 files changed, 55 insertions, 55 deletions
diff --git a/tests/rwlock6.c b/tests/rwlock6.c index 7daccd7..8a75b83 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 pthread_rwlock_t rwlock1 = PTHREAD_RWLOCK_INITIALIZER;
-static int bankAccount; +static int bankAccount;
-void * wrfunc(void * arg) -{ - assert(pthread_rwlock_wrlock(&rwlock1) == 0); - Sleep(1000); - bankAccount += 10; - assert(pthread_rwlock_unlock(&rwlock1) == 0); +void * wrfunc(void * arg)
+{
+ assert(pthread_rwlock_wrlock(&rwlock1) == 0);
+ Sleep(1000);
+ bankAccount += 10;
+ assert(pthread_rwlock_unlock(&rwlock1) == 0);
- return((void *) bankAccount); -} - -void * rdfunc(void * arg) -{ - int ba = 0; + return((void *) bankAccount);
+}
+
+void * rdfunc(void * arg)
+{
+ int ba = 0;
- assert(pthread_rwlock_rdlock(&rwlock1) == 0); - ba = bankAccount; - assert(pthread_rwlock_unlock(&rwlock1) == 0); + assert(pthread_rwlock_rdlock(&rwlock1) == 0);
+ ba = bankAccount;
+ assert(pthread_rwlock_unlock(&rwlock1) == 0);
- 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; + 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;
- 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_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(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 == 30); + assert(wr1Result == 10);
+ assert(wr2Result == 20);
+ assert(rdResult == 20);
- return 0; -} + return 0;
+}
|