Lines Matching refs:rw_refcount
91 rwlock->rw_refcount = 0; in pthread_rwlock_init()
133 if (rwlock->rw_refcount != 0 || in pthread_rwlock_destroy()
210 while (rwlock->rw_refcount < 0 || rwlock->rw_nwaitwriters > 0) in pthread_rwlock_rdlock()
223 rwlock->rw_refcount++; in pthread_rwlock_rdlock()
265 if (rwlock->rw_refcount < 0 || rwlock->rw_nwaitwriters > 0) in pthread_rwlock_tryrdlock()
268 rwlock->rw_refcount++; /* increment count of reader locks */ in pthread_rwlock_tryrdlock()
319 while (rwlock->rw_refcount < 0 || rwlock->rw_nwaitwriters > 0) in pthread_rwlock_timedrdlock()
332 rwlock->rw_refcount++; in pthread_rwlock_timedrdlock()
382 while (rwlock->rw_refcount != 0) in pthread_rwlock_timedwrlock()
395 rwlock->rw_refcount = -1; in pthread_rwlock_timedwrlock()
438 if (rwlock->rw_refcount != 0) in pthread_rwlock_trywrlock()
441 rwlock->rw_refcount = -1; /* available, indicate a writer has it */ in pthread_rwlock_trywrlock()
483 if (rwlock->rw_refcount > 0) in pthread_rwlock_unlock()
484 rwlock->rw_refcount--; /* releasing a reader */ in pthread_rwlock_unlock()
485 else if (rwlock->rw_refcount == -1) in pthread_rwlock_unlock()
486 rwlock->rw_refcount = 0; /* releasing a writer */ in pthread_rwlock_unlock()
491 if (rwlock->rw_refcount == 0) in pthread_rwlock_unlock()
542 while (rwlock->rw_refcount != 0) in pthread_rwlock_wrlock()
555 rwlock->rw_refcount = -1; in pthread_rwlock_wrlock()