Lines Matching refs:lock
54 struct urwlock lock; member
79 l->lock.rw_flags = URWLOCK_PREFER_READER; in _thr_rtld_lock_create()
84 _thr_rtld_lock_destroy(void *lock) in _thr_rtld_lock_destroy() argument
89 locki = (struct rtld_lock *)lock - &lock_place[0]; in _thr_rtld_lock_destroy()
91 ((char *)lock)[i] = 0; in _thr_rtld_lock_destroy()
110 _thr_rtld_rlock_acquire(void *lock) in _thr_rtld_rlock_acquire() argument
118 l = (struct rtld_lock *)lock; in _thr_rtld_rlock_acquire()
121 while (_thr_rwlock_rdlock(&l->lock, 0, NULL) != 0) in _thr_rtld_rlock_acquire()
128 _thr_rtld_wlock_acquire(void *lock) in _thr_rtld_wlock_acquire() argument
136 l = (struct rtld_lock *)lock; in _thr_rtld_wlock_acquire()
139 while (_thr_rwlock_wrlock(&l->lock, NULL) != 0) in _thr_rtld_wlock_acquire()
145 _thr_rtld_lock_release(void *lock) in _thr_rtld_lock_release() argument
154 l = (struct rtld_lock *)lock; in _thr_rtld_lock_release()
156 state = l->lock.rw_state; in _thr_rtld_lock_release()
163 atomic_clear_int(&l->lock.rw_state, in _thr_rtld_lock_release()
165 l->lock.rw_blocked_readers = 0; in _thr_rtld_lock_release()
166 l->lock.rw_blocked_writers = 0; in _thr_rtld_lock_release()
168 if (_thr_rwlock_unlock(&l->lock) == 0) { in _thr_rtld_lock_release()