/third_party/mesa3d/src/util/ |
H A D | rwlock.h | 44 SRWLOCK rwlock; member 46 pthread_rwlock_t rwlock; 50 static inline int u_rwlock_init(struct u_rwlock *rwlock) in u_rwlock_init() argument 53 InitializeSRWLock(&rwlock->rwlock); in u_rwlock_init() 56 return pthread_rwlock_init(&rwlock->rwlock, NULL); in u_rwlock_init() 60 static inline int u_rwlock_destroy(struct u_rwlock *rwlock) in u_rwlock_destroy() argument 65 return pthread_rwlock_destroy(&rwlock->rwlock); in u_rwlock_destroy() 69 u_rwlock_rdlock(struct u_rwlock *rwlock) u_rwlock_rdlock() argument 79 u_rwlock_rdunlock(struct u_rwlock *rwlock) u_rwlock_rdunlock() argument 89 u_rwlock_wrlock(struct u_rwlock *rwlock) u_rwlock_wrlock() argument 99 u_rwlock_wrunlock(struct u_rwlock *rwlock) u_rwlock_wrunlock() argument [all...] |
/third_party/libuv/test/ |
H A D | test-mutexes.c | 30 static uv_rwlock_t rwlock; variable 33 /* The mutex and rwlock tests are really poor. 74 uv_rwlock_t rwlock; in TEST_IMPL() local 77 r = uv_rwlock_init(&rwlock); in TEST_IMPL() 80 uv_rwlock_rdlock(&rwlock); in TEST_IMPL() 81 uv_rwlock_rdunlock(&rwlock); in TEST_IMPL() 82 uv_rwlock_wrlock(&rwlock); in TEST_IMPL() 83 uv_rwlock_wrunlock(&rwlock); in TEST_IMPL() 84 uv_rwlock_destroy(&rwlock); in TEST_IMPL() 114 ASSERT_EQ(UV_EBUSY, uv_rwlock_tryrdlock(&rwlock)); in thread_rwlock_trylock_peer() [all...] |
/third_party/musl/libc-test/src/functionalext/supplement/thread/ |
H A D | pthread_rwlock_timedrdlock.c | 24 * @tc.desc : Provide correct parameters, test timeout and rwlock 30 pthread_rwlock_t rwlock; in pthread_rwlock_timedrdlock_0100() local 31 pthread_rwlock_init(&rwlock, NULL); in pthread_rwlock_timedrdlock_0100() 37 rev = pthread_rwlock_timedrdlock(&rwlock, &ts); in pthread_rwlock_timedrdlock_0100() 41 pthread_rwlock_unlock(&rwlock); in pthread_rwlock_timedrdlock_0100() 43 pthread_rwlock_destroy(&rwlock); in pthread_rwlock_timedrdlock_0100() 48 * @tc.desc : In the locked (read lock) state, the test times out and rwlock 54 pthread_rwlock_t rwlock; in pthread_rwlock_timedrdlock_0200() local 55 pthread_rwlock_init(&rwlock, NULL); in pthread_rwlock_timedrdlock_0200() 56 int rev = pthread_rwlock_timedrdlock(&rwlock, NUL in pthread_rwlock_timedrdlock_0200() 78 pthread_rwlock_t rwlock; pthread_rwlock_timedrdlock_0300() local 102 pthread_rwlock_t rwlock; pthread_rwlock_timedrdlock_time64_0100() local [all...] |
H A D | pthread_rwlock_timedwrlock.c | 24 * @tc.desc : Provide correct parameters, test timeout and rwlock 30 pthread_rwlock_t rwlock; in pthread_rwlock_timedwrlock_0100() local 31 pthread_rwlock_init(&rwlock, NULL); in pthread_rwlock_timedwrlock_0100() 37 rev = pthread_rwlock_timedwrlock(&rwlock, &ts); in pthread_rwlock_timedwrlock_0100() 41 pthread_rwlock_unlock(&rwlock); in pthread_rwlock_timedwrlock_0100() 43 pthread_rwlock_destroy(&rwlock); in pthread_rwlock_timedwrlock_0100() 48 * @tc.desc : In the locked (read lock) state, the test times out and rwlock 54 pthread_rwlock_t rwlock; in pthread_rwlock_timedwrlock_0200() local 55 pthread_rwlock_init(&rwlock, NULL); in pthread_rwlock_timedwrlock_0200() 56 int rev = pthread_rwlock_timedrdlock(&rwlock, NUL in pthread_rwlock_timedwrlock_0200() 78 pthread_rwlock_t rwlock; pthread_rwlock_timedwrlock_0300() local 102 pthread_rwlock_t rwlock; pthread_rwlock_timedwrlock_time64_0100() local [all...] |
H A D | pthread_rwlock_tryrdlock.c | 26 pthread_rwlock_t rwlock; in pthread_rwlock_tryrdlock_0100() local 29 pthread_rwlock_init(&rwlock, &rwlockattr); in pthread_rwlock_tryrdlock_0100() 31 int ret = pthread_rwlock_tryrdlock(&rwlock); in pthread_rwlock_tryrdlock_0100() 33 ret = pthread_rwlock_unlock(&rwlock); in pthread_rwlock_tryrdlock_0100() 36 pthread_rwlock_destroy(&rwlock); in pthread_rwlock_tryrdlock_0100() 47 pthread_rwlock_t rwlock; in pthread_rwlock_tryrdlock_0200() local 50 pthread_rwlock_init(&rwlock, &rwlockattr); in pthread_rwlock_tryrdlock_0200() 52 int ret = pthread_rwlock_wrlock(&rwlock); in pthread_rwlock_tryrdlock_0200() 55 ret = pthread_rwlock_tryrdlock(&rwlock); in pthread_rwlock_tryrdlock_0200() 58 ret = pthread_rwlock_unlock(&rwlock); in pthread_rwlock_tryrdlock_0200() [all...] |
H A D | pthread_rwlock_trywrlock.c | 26 pthread_rwlock_t rwlock; in pthread_rwlock_trywrlock_0100() local 29 pthread_rwlock_init(&rwlock, &rwlockattr); in pthread_rwlock_trywrlock_0100() 31 int ret = pthread_rwlock_trywrlock(&rwlock); in pthread_rwlock_trywrlock_0100() 33 ret = pthread_rwlock_unlock(&rwlock); in pthread_rwlock_trywrlock_0100() 36 pthread_rwlock_destroy(&rwlock); in pthread_rwlock_trywrlock_0100() 47 pthread_rwlock_t rwlock; in pthread_rwlock_trywrlock_0200() local 50 pthread_rwlock_init(&rwlock, &rwlockattr); in pthread_rwlock_trywrlock_0200() 52 int ret = pthread_rwlock_wrlock(&rwlock); in pthread_rwlock_trywrlock_0200() 55 ret = pthread_rwlock_trywrlock(&rwlock); in pthread_rwlock_trywrlock_0200() 58 ret = pthread_rwlock_unlock(&rwlock); in pthread_rwlock_trywrlock_0200() [all...] |
/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/llvm/lib/Support/ |
H A D | RWMutex.cpp | 44 pthread_rwlock_t* rwlock = 49 bzero(rwlock, sizeof(pthread_rwlock_t)); 52 // Initialize the rwlock 53 int errorcode = pthread_rwlock_init(rwlock, nullptr); 58 data_ = rwlock; 64 pthread_rwlock_t* rwlock = static_cast<pthread_rwlock_t*>(data_); 65 assert(rwlock != nullptr); 66 pthread_rwlock_destroy(rwlock); 67 free(rwlock); 73 pthread_rwlock_t* rwlock [all...] |
/third_party/ltp/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_unlock/ |
H A D | 1-1.c | 7 * Test that pthread_rwlock_unlock(pthread_rwlock_t *rwlock) 10 * read-write lock object referenced by rwlock 18 * 1. Initialize a pthread_rwlock_t object 'rwlock' with pthread_rwlock_init() 19 * 2. Main thread read lock 'rwlock' 20 * 3. Create a child thread, the thread read lock 'rwlock', should not block 21 * 4. Child thread unlock 'rwlock', while the main thread still hold the read lock. 22 * 5. Child thread read lock 'rwlock' again, should succeed, then unlock again 23 * 6. Child thread write lock 'rwlock', should block 24 * 7. Main thread unlock the read lock, the 'rwlock' is in unlocked state 33 static pthread_rwlock_t rwlock; variable [all...] |
H A D | 3-1.c | 22 * 2. Main thread write lock 'rwlock' 28 * 7. Main thread release the 'rwlock', make sure the threads got the lock in the order 47 static pthread_rwlock_t rwlock; variable 85 rc = pthread_rwlock_rdlock(&rwlock); in fn_rd() 102 if (pthread_rwlock_unlock(&rwlock) != 0) { in fn_rd() 120 rc = pthread_rwlock_wrlock(&rwlock); in fn_wr_1() 138 if (pthread_rwlock_unlock(&rwlock) != 0) { in fn_wr_1() 157 rc = pthread_rwlock_wrlock(&rwlock); in fn_wr_2() 174 if (pthread_rwlock_unlock(&rwlock) != 0) { in fn_wr_2() 198 if (pthread_rwlock_init(&rwlock, NUL in main() [all...] |
H A D | 2-1.c | 7 * Test that pthread_rwlock_unlock(pthread_rwlock_t *rwlock) 10 * read-write lock object referenced by rwlock 18 * 1. Initialize a pthread_rwlock_t object 'rwlock' with pthread_rwlock_init() 19 * 2. Main thread write lock 'rwlock' 20 * 3. Create a child thread, the thread write lock 'rwlock', should block 21 * 4. Main thread unlock the write lock, the 'rwlock' is in unlocked state 30 static pthread_rwlock_t rwlock; variable 50 if (pthread_rwlock_wrlock(&rwlock) != 0) { in fn_wr() 56 rc = pthread_rwlock_unlock(&rwlock); in fn_wr() 74 if (pthread_rwlock_init(&rwlock, NUL in main() [all...] |
/third_party/node/deps/openssl/openssl/crypto/ |
H A D | threads_win.c | 44 CRYPTO_win_rwlock *rwlock; in CRYPTO_THREAD_lock_new() local 48 rwlock = lock; in CRYPTO_THREAD_lock_new() 49 InitializeSRWLock(&rwlock->lock); in CRYPTO_THREAD_lock_new() 74 CRYPTO_win_rwlock *rwlock = lock; in CRYPTO_THREAD_read_lock() local 76 AcquireSRWLockShared(&rwlock->lock); in CRYPTO_THREAD_read_lock() 86 CRYPTO_win_rwlock *rwlock = lock; in CRYPTO_THREAD_write_lock() local 88 AcquireSRWLockExclusive(&rwlock->lock); in CRYPTO_THREAD_write_lock() 89 rwlock->exclusive = 1; in CRYPTO_THREAD_write_lock() 99 CRYPTO_win_rwlock *rwlock = lock; in CRYPTO_THREAD_unlock() local 101 if (rwlock in CRYPTO_THREAD_unlock() [all...] |
/third_party/openssl/crypto/ |
H A D | threads_win.c | 44 CRYPTO_win_rwlock *rwlock; in CRYPTO_THREAD_lock_new() local 48 rwlock = lock; in CRYPTO_THREAD_lock_new() 49 InitializeSRWLock(&rwlock->lock); in CRYPTO_THREAD_lock_new() 74 CRYPTO_win_rwlock *rwlock = lock; in CRYPTO_THREAD_read_lock() local 76 AcquireSRWLockShared(&rwlock->lock); in CRYPTO_THREAD_read_lock() 86 CRYPTO_win_rwlock *rwlock = lock; in CRYPTO_THREAD_write_lock() local 88 AcquireSRWLockExclusive(&rwlock->lock); in CRYPTO_THREAD_write_lock() 89 rwlock->exclusive = 1; in CRYPTO_THREAD_write_lock() 99 CRYPTO_win_rwlock *rwlock = lock; in CRYPTO_THREAD_unlock() local 101 if (rwlock in CRYPTO_THREAD_unlock() [all...] |
/third_party/skia/third_party/externals/dng_sdk/source/ |
H A D | dng_pthread.h | 130 int dng_pthread_rwlock_destroy(dng_pthread_rwlock_t * rwlock); 131 int dng_pthread_rwlock_init(dng_pthread_rwlock_t * rwlock, const pthread_rwlockattr_t * attrs); 132 int dng_pthread_rwlock_rdlock(dng_pthread_rwlock_t * rwlock); 133 int dng_pthread_rwlock_tryrdlock(dng_pthread_rwlock_t * rwlock); 134 int dng_pthread_rwlock_trywrlock(dng_pthread_rwlock_t * rwlock); 135 int dng_pthread_rwlock_unlock(dng_pthread_rwlock_t * rwlock); 136 int dng_pthread_rwlock_wrlock(dng_pthread_rwlock_t * rwlock); 141 int dng_pthread_rwlock_destroy(dng_pthread_rwlock_t * rwlock); 142 int dng_pthread_rwlock_init(dng_pthread_rwlock_t * rwlock, const pthread_rwlockattr_t * attrs); 143 int dng_pthread_rwlock_rdlock(dng_pthread_rwlock_t * rwlock); [all...] |
/third_party/ltp/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_tryrdlock/ |
H A D | 1-1.c | 7 * Test that pthread_rwlock_tryrdlock(pthread_rwlock_t *rwlock) 19 * 1. Initialize a pthread_rwlock_t object 'rwlock' with pthread_rwlock_init() 20 * 2. Main thread read lock 'rwlock' 21 * 3. Create a child thread, the thread read lock 'rwlock' using pthread_rwlock_tryrdlock(), should success 22 * 4. Main thread unlock 'rwlock' 23 * 5. Main thread write lock 'rwlock' 24 * 6. Create child thread to read lock 'rwlock' with pthread_rwlock_tryrdlock(), should not block and get EBUSY 25 * 7. Main thread unlock 'rwlock' 34 static pthread_rwlock_t rwlock; variable 53 rc = pthread_rwlock_tryrdlock(&rwlock); in fn_rd_1() [all...] |
/third_party/ltp/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_rdlock/ |
H A D | 1-1.c | 7 * Test that pthread_rwlock_rdlock(pthread_rwlock_t *rwlock) 10 * read-write lock referenced by rwlock. The calling thread acquires 18 * 1. Initialize a pthread_rwlock_t object 'rwlock' with pthread_rwlock_init() 19 * 2. Main thread read lock 'rwlock' 20 * 3. Create a child thread. The thread read lock 'rwlock', should not block. Then unlock it. 21 * 4. Main thread unlock 'rwlock' 22 * 5. Main thread write lock 'rwlock' 23 * 6. Create child thread to read lock 'rwlock', should block 24 * 7. Main thread unlock 'rwlock' 32 static pthread_rwlock_t rwlock; variable [all...] |
/third_party/ltp/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_wrlock/ |
H A D | 1-1.c | 7 * Test pthread_rwlock_wrlock(pthread_rwlock_t *rwlock) 10 * 'rwlock'. The calling thread acquires the write lock if no other thread 11 * (reader or writer) holds the read-write lock 'rwlock'. Otherwise, the thread 15 * 1. Initialize a pthread_rwlock_t object 'rwlock' with pthread_rwlock_init() 16 * 2. Main thread lock 'rwlock' for reading with pthread_rwlock_rdlock() 17 * 3. Create a child thread, the thread lock 'rwlock' for writing, shall block 18 * 4. Main thread unlock 'rwlock', child thread should get the write lock 19 * 5. Main thread lock 'rwlock' for writing 20 * 6. Create child thread to lock 'rwlock' for writing, should block 21 * 7. Main thread unlock 'rwlock' 31 static pthread_rwlock_t rwlock; global() variable [all...] |
H A D | 3-1.c | 7 * Test pthread_rwlock_wrlock(pthread_rwlock_t *rwlock) 10 * [EDEADLK] The current thread already owns the rwlock for writing or reading. 13 * 1. Create and initialize an rwlock 15 * 3. Perform a write lock _again_ with pthread_rwlock_wrlock without first unlocking rwlock() 29 static pthread_rwlock_t rwlock; in main() local 32 if (pthread_rwlock_init(&rwlock, NULL) != 0) { in main() 37 /* Attempt to write lock rwlock, it should return successfully */ in main() 40 if (pthread_rwlock_wrlock(&rwlock) != 0) { in main() 46 /* Now attempt to write lock again without first unlocking rwlock. It may return in main() 50 rc = pthread_rwlock_wrlock(&rwlock); in main() [all...] |
/third_party/ltp/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_init/ |
H A D | 3-1.c | 13 * 1. Initialize a pthread_rwlock_t object 'rwlock' with pthread_rwlock_init() 27 static pthread_rwlock_t rwlock; variable 39 if (pthread_rwlock_init(&rwlock, &rwlockattr) != 0) { in main() 45 if (pthread_rwlock_rdlock(&rwlock) != 0) { in main() 52 if (pthread_rwlock_unlock(&rwlock) != 0) { in main() 59 if (pthread_rwlock_wrlock(&rwlock) != 0) { in main() 66 if (pthread_rwlock_unlock(&rwlock) != 0) { in main() 74 if (pthread_rwlock_destroy(&rwlock) != 0) { in main()
|
/third_party/ltp/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_timedrdlock/ |
H A D | 5-1.c | 7 * Test that pthread_rwlock_timedrdlock(pthread_rwlock_t *rwlock) 15 * 2. Child thread lock 'rwlock' for reading with pthread_rwlock_timedrdlock(), 17 * 3. The child thread unlocks the 'rwlock' and exits. 19 * 4. The child thread lock 'rwlock' for reading, with pthread_rwlock_timedrdlock(), 45 pthread_rwlock_t rwlock; in fn_rd_1() local 47 if (pthread_rwlock_init(&rwlock, NULL) != 0) { in fn_rd_1() 59 rc = pthread_rwlock_timedrdlock(&rwlock, &abs_timeout); in fn_rd_1() 67 if (pthread_rwlock_unlock(&rwlock) != 0) { in fn_rd_1() 76 if (pthread_rwlock_destroy(&rwlock) != 0) { in fn_rd_1() 90 pthread_rwlock_t rwlock; in fn_rd_2() local [all...] |
H A D | 3-1.c | 7 * Test that pthread_rwlock_timedrdlock(pthread_rwlock_t *rwlock) 10 * rwlock as in the pthread_rwlock_rdlock(). However, if the lock cannot be 15 * 1. Initialize a pthread_rwlock_t object 'rwlock' with pthread_rwlock_init() 16 * 2. Main thread lock 'rwlock' for reading with pthread_rwlock_rdlock() 17 * 3. Create a child thread, the thread lock 'rwlock' for reading, 18 * using pthread_rwlock_timedrdlock(), should get read lock. Thread unlocks 'rwlock'. 19 * 4. Main thread unlock 'rwlock' 20 * 5. Main thread lock 'rwlock' for writing 21 * 6. Create child thread to lock 'rwlock' for reading, 24 * 7. Main thread unlock 'rwlock' 49 static pthread_rwlock_t rwlock; global() variable [all...] |
H A D | 1-1.c | 7 * Test that pthread_rwlock_timedrdlock(pthread_rwlock_t *rwlock) 10 * rwlock as in the pthread_rwlock_rdlock(). However, if the lock cannot be 15 * 1. Initialize a pthread_rwlock_t object 'rwlock' with pthread_rwlock_init() 16 * 2. Main thread lock 'rwlock' for reading with pthread_rwlock_rdlock() 17 * 3. Create a child thread, the thread lock 'rwlock' for reading, 18 * using pthread_rwlock_timedrdlock(), should get read lock. Thread unlocks 'rwlock'. 19 * 4. Main thread unlock 'rwlock' 20 * 5. Main thread lock 'rwlock' for writing 21 * 6. Create child thread to lock 'rwlock' for reading, 24 * 7. Main thread unlock 'rwlock' 46 static pthread_rwlock_t rwlock; global() variable [all...] |
/third_party/ltp/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_timedwrlock/ |
H A D | 5-1.c | 7 * Test that pthread_rwlock_timedwrlock(pthread_rwlock_t *rwlock) 15 * 2. Child thread lock 'rwlock' for writing with pthread_rwlock_timedwrlock(), 17 * 3. The child thread unlocks the 'rwlock' and exit. 19 * 5. The child thread lock 'rwlock' for write, with pthread_rwlock_timedwrlock(), 52 pthread_rwlock_t rwlock; in fn_wr_1() local 54 if (pthread_rwlock_init(&rwlock, NULL) != 0) { in fn_wr_1() 66 rc = pthread_rwlock_timedwrlock(&rwlock, &abs_timeout); in fn_wr_1() 74 if (pthread_rwlock_unlock(&rwlock) != 0) { in fn_wr_1() 83 if (pthread_rwlock_destroy(&rwlock) != 0) { in fn_wr_1() 97 pthread_rwlock_t rwlock; in fn_wr_2() local [all...] |
/third_party/libuv/src/win/ |
H A D | thread.c | 334 int uv_rwlock_init(uv_rwlock_t* rwlock) { in uv_rwlock_init() argument 335 memset(rwlock, 0, sizeof(*rwlock)); in uv_rwlock_init() 336 InitializeSRWLock(&rwlock->read_write_lock_); in uv_rwlock_init() 342 void uv_rwlock_destroy(uv_rwlock_t* rwlock) { in uv_rwlock_destroy() argument 348 void uv_rwlock_rdlock(uv_rwlock_t* rwlock) { in uv_rwlock_rdlock() argument 349 AcquireSRWLockShared(&rwlock->read_write_lock_); in uv_rwlock_rdlock() 353 int uv_rwlock_tryrdlock(uv_rwlock_t* rwlock) { in uv_rwlock_tryrdlock() argument 354 if (!TryAcquireSRWLockShared(&rwlock->read_write_lock_)) in uv_rwlock_tryrdlock() 361 void uv_rwlock_rdunlock(uv_rwlock_t* rwlock) { in uv_rwlock_rdunlock() argument 366 uv_rwlock_wrlock(uv_rwlock_t* rwlock) uv_rwlock_wrlock() argument 371 uv_rwlock_trywrlock(uv_rwlock_t* rwlock) uv_rwlock_trywrlock() argument 379 uv_rwlock_wrunlock(uv_rwlock_t* rwlock) uv_rwlock_wrunlock() argument [all...] |
/third_party/node/deps/uv/src/win/ |
H A D | thread.c | 259 int uv_rwlock_init(uv_rwlock_t* rwlock) { in uv_rwlock_init() argument 260 memset(rwlock, 0, sizeof(*rwlock)); in uv_rwlock_init() 261 InitializeSRWLock(&rwlock->read_write_lock_); in uv_rwlock_init() 267 void uv_rwlock_destroy(uv_rwlock_t* rwlock) { in uv_rwlock_destroy() argument 273 void uv_rwlock_rdlock(uv_rwlock_t* rwlock) { in uv_rwlock_rdlock() argument 274 AcquireSRWLockShared(&rwlock->read_write_lock_); in uv_rwlock_rdlock() 278 int uv_rwlock_tryrdlock(uv_rwlock_t* rwlock) { in uv_rwlock_tryrdlock() argument 279 if (!TryAcquireSRWLockShared(&rwlock->read_write_lock_)) in uv_rwlock_tryrdlock() 286 void uv_rwlock_rdunlock(uv_rwlock_t* rwlock) { in uv_rwlock_rdunlock() argument 291 uv_rwlock_wrlock(uv_rwlock_t* rwlock) uv_rwlock_wrlock() argument 296 uv_rwlock_trywrlock(uv_rwlock_t* rwlock) uv_rwlock_trywrlock() argument 304 uv_rwlock_wrunlock(uv_rwlock_t* rwlock) uv_rwlock_wrunlock() argument [all...] |
/third_party/ltp/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_trywrlock/ |
H A D | 1-1.c | 7 * Test pthread_rwlock_trywrlock(pthread_rwlock_t *rwlock) 10 * that the function shall fail if any thread currently holds rwlock(for reading and writing). 13 * 1. Initialize a pthread_rwlock_t object 'rwlock' with pthread_rwlock_init() 14 * 2. Main thread lock 'rwlock' for reading with pthread_rwlock_rdlock() 15 * 3. Create a child thread, the thread locks 'rwlock' for writing, using 17 * 4. Main thread unlocks 'rwlock' 18 * 5. Main thread locks 'rwlock' for writing, using pthread_rwlock_trywrlock(), 20 * 6. Create child thread to lock 'rwlock' for writing, with pthread_rwlock_trywrlock(), 22 * 7. Main thread unlock 'rwlock' 31 static pthread_rwlock_t rwlock; variable [all...] |