Lines Matching refs:prwlock

75 	pthread_rwlock_t prwlock;  in init_rwlock()  local
79 prwlock = __thr_pshared_offpage(rwlock, 0); in init_rwlock()
80 if (prwlock == NULL) in init_rwlock()
82 } else if ((prwlock = *rwlock) <= THR_RWLOCK_DESTROYED) { in init_rwlock()
83 if (prwlock == THR_RWLOCK_INITIALIZER) { in init_rwlock()
87 } else if (prwlock == THR_RWLOCK_DESTROYED) { in init_rwlock()
90 prwlock = *rwlock; in init_rwlock()
92 *rwlock_out = prwlock; in init_rwlock()
99 pthread_rwlock_t prwlock; in rwlock_init() local
103 prwlock = aligned_alloc(CACHE_LINE_SIZE, in rwlock_init()
105 if (prwlock == NULL) in rwlock_init()
107 memset(prwlock, 0, sizeof(struct pthread_rwlock)); in rwlock_init()
108 *rwlock = prwlock; in rwlock_init()
110 prwlock = __thr_pshared_offpage(rwlock, 1); in rwlock_init()
111 if (prwlock == NULL) in rwlock_init()
113 prwlock->lock.rw_flags |= USYNC_PROCESS_SHARED; in rwlock_init()
122 pthread_rwlock_t prwlock; in _thr_rwlock_destroy() local
125 prwlock = *rwlock; in _thr_rwlock_destroy()
126 if (prwlock == THR_RWLOCK_INITIALIZER) in _thr_rwlock_destroy()
128 else if (prwlock == THR_RWLOCK_DESTROYED) in _thr_rwlock_destroy()
130 else if (prwlock == THR_PSHARED_PTR) { in _thr_rwlock_destroy()
136 free(prwlock); in _thr_rwlock_destroy()
172 pthread_rwlock_t prwlock; in rwlock_rdlock_common() local
176 ret = check_and_init_rwlock(rwlock, &prwlock); in rwlock_rdlock_common()
202 ret = _thr_rwlock_tryrdlock(&prwlock->lock, flags); in rwlock_rdlock_common()
214 ret = __thr_rwlock_rdlock(&prwlock->lock, flags, abstime); in rwlock_rdlock_common()
219 if (_thr_rwlock_tryrdlock(&prwlock->lock, flags) == 0) { in rwlock_rdlock_common()
248 pthread_rwlock_t prwlock; in _Tthr_rwlock_tryrdlock() local
253 ret = check_and_init_rwlock(rwlock, &prwlock); in _Tthr_rwlock_tryrdlock()
276 ret = _thr_rwlock_tryrdlock(&prwlock->lock, flags); in _Tthr_rwlock_tryrdlock()
286 pthread_rwlock_t prwlock; in _Tthr_rwlock_trywrlock() local
290 ret = check_and_init_rwlock(rwlock, &prwlock); in _Tthr_rwlock_trywrlock()
295 ret = _thr_rwlock_trywrlock(&prwlock->lock); in _Tthr_rwlock_trywrlock()
297 prwlock->owner = TID(curthread); in _Tthr_rwlock_trywrlock()
305 pthread_rwlock_t prwlock; in rwlock_wrlock_common() local
308 ret = check_and_init_rwlock(rwlock, &prwlock); in rwlock_wrlock_common()
316 ret = _thr_rwlock_trywrlock(&prwlock->lock); in rwlock_wrlock_common()
318 prwlock->owner = TID(curthread); in rwlock_wrlock_common()
328 ret = __thr_rwlock_wrlock(&prwlock->lock, abstime); in rwlock_wrlock_common()
330 prwlock->owner = TID(curthread); in rwlock_wrlock_common()
338 if (_thr_rwlock_trywrlock(&prwlock->lock) == 0) { in rwlock_wrlock_common()
340 prwlock->owner = TID(curthread); in rwlock_wrlock_common()
366 pthread_rwlock_t prwlock; in _Tthr_rwlock_unlock() local
371 prwlock = __thr_pshared_offpage(rwlock, 0); in _Tthr_rwlock_unlock()
372 if (prwlock == NULL) in _Tthr_rwlock_unlock()
375 prwlock = *rwlock; in _Tthr_rwlock_unlock()
378 if (__predict_false(prwlock <= THR_RWLOCK_DESTROYED)) in _Tthr_rwlock_unlock()
381 state = prwlock->lock.rw_state; in _Tthr_rwlock_unlock()
383 if (__predict_false(prwlock->owner != TID(curthread))) in _Tthr_rwlock_unlock()
385 prwlock->owner = 0; in _Tthr_rwlock_unlock()
388 ret = _thr_rwlock_unlock(&prwlock->lock); in _Tthr_rwlock_unlock()