Lines Matching refs:rwlock
26 pthread_rwlock_tryrdlock (struct __pthread_rwlock *rwlock) in pthread_rwlock_tryrdlock() argument
28 __pthread_spin_wait (&rwlock->__lock); in pthread_rwlock_tryrdlock()
29 if (__pthread_spin_trylock (&rwlock->__held) == 0) in pthread_rwlock_tryrdlock()
32 assert (rwlock->__readerqueue == 0); in pthread_rwlock_tryrdlock()
33 assert (rwlock->__writerqueue == 0); in pthread_rwlock_tryrdlock()
34 assert (rwlock->__readers == 0); in pthread_rwlock_tryrdlock()
36 rwlock->__readers = 1; in pthread_rwlock_tryrdlock()
37 __pthread_spin_unlock (&rwlock->__lock); in pthread_rwlock_tryrdlock()
42 if (rwlock->__readers > 0) in pthread_rwlock_tryrdlock()
44 assert (rwlock->__readerqueue == 0); in pthread_rwlock_tryrdlock()
45 rwlock->__readers++; in pthread_rwlock_tryrdlock()
46 __pthread_spin_unlock (&rwlock->__lock); in pthread_rwlock_tryrdlock()
52 __pthread_spin_unlock (&rwlock->__lock); in pthread_rwlock_tryrdlock()