Lines Matching refs:lock

118 			target->lock == cbs->lock &&  in evthread_set_lock_callbacks()
127 if (cbs->alloc && cbs->free && cbs->lock && cbs->unlock) { in evthread_set_lock_callbacks()
191 void *lock; member
201 if (!(result->lock = original_lock_fns_.alloc( in debug_lock_alloc()
207 result->lock = NULL; in debug_lock_alloc()
219 struct debug_lock *lock = lock_; in debug_lock_free() local
220 EVUTIL_ASSERT(lock->count == 0); in debug_lock_free()
221 EVUTIL_ASSERT(locktype == lock->locktype); in debug_lock_free()
222 EVUTIL_ASSERT(DEBUG_LOCK_SIG == lock->signature); in debug_lock_free()
224 original_lock_fns_.free(lock->lock, in debug_lock_free()
225 lock->locktype|EVTHREAD_LOCKTYPE_RECURSIVE); in debug_lock_free()
227 lock->lock = NULL; in debug_lock_free()
228 lock->count = -100; in debug_lock_free()
229 lock->signature = 0x12300fda; in debug_lock_free()
230 mm_free(lock); in debug_lock_free()
234 evthread_debug_lock_mark_locked(unsigned mode, struct debug_lock *lock) in evthread_debug_lock_mark_locked() argument
236 EVUTIL_ASSERT(DEBUG_LOCK_SIG == lock->signature); in evthread_debug_lock_mark_locked()
237 ++lock->count; in evthread_debug_lock_mark_locked()
238 if (!(lock->locktype & EVTHREAD_LOCKTYPE_RECURSIVE)) in evthread_debug_lock_mark_locked()
239 EVUTIL_ASSERT(lock->count == 1); in evthread_debug_lock_mark_locked()
243 if (lock->count > 1) in evthread_debug_lock_mark_locked()
244 EVUTIL_ASSERT(lock->held_by == me); in evthread_debug_lock_mark_locked()
245 lock->held_by = me; in evthread_debug_lock_mark_locked()
252 struct debug_lock *lock = lock_; in debug_lock_lock() local
254 if (lock->locktype & EVTHREAD_LOCKTYPE_READWRITE) in debug_lock_lock()
258 if (original_lock_fns_.lock) in debug_lock_lock()
259 res = original_lock_fns_.lock(mode, lock->lock); in debug_lock_lock()
261 evthread_debug_lock_mark_locked(mode, lock); in debug_lock_lock()
267 evthread_debug_lock_mark_unlocked(unsigned mode, struct debug_lock *lock) in evthread_debug_lock_mark_unlocked() argument
269 EVUTIL_ASSERT(DEBUG_LOCK_SIG == lock->signature); in evthread_debug_lock_mark_unlocked()
270 if (lock->locktype & EVTHREAD_LOCKTYPE_READWRITE) in evthread_debug_lock_mark_unlocked()
277 EVUTIL_ASSERT(lock->held_by == me); in evthread_debug_lock_mark_unlocked()
278 if (lock->count == 1) in evthread_debug_lock_mark_unlocked()
279 lock->held_by = 0; in evthread_debug_lock_mark_unlocked()
281 --lock->count; in evthread_debug_lock_mark_unlocked()
282 EVUTIL_ASSERT(lock->count >= 0); in evthread_debug_lock_mark_unlocked()
288 struct debug_lock *lock = lock_; in debug_lock_unlock() local
290 evthread_debug_lock_mark_unlocked(mode, lock); in debug_lock_unlock()
292 res = original_lock_fns_.unlock(mode, lock->lock); in debug_lock_unlock()
300 struct debug_lock *lock = lock_; in debug_cond_wait() local
301 EVUTIL_ASSERT(lock); in debug_cond_wait()
302 EVUTIL_ASSERT(DEBUG_LOCK_SIG == lock->signature); in debug_cond_wait()
304 evthread_debug_lock_mark_unlocked(0, lock); in debug_cond_wait()
305 r = original_cond_fns_.wait_condition(cond_, lock->lock, tv); in debug_cond_wait()
306 evthread_debug_lock_mark_locked(0, lock); in debug_cond_wait()
347 struct debug_lock *lock = lock_; in evthread_is_debug_lock_held_() local
348 if (! lock->count) in evthread_is_debug_lock_held_()
352 if (lock->held_by != me) in evthread_is_debug_lock_held_()
361 struct debug_lock *lock = lock_; in evthread_debug_get_real_lock_() local
362 return lock->lock; in evthread_debug_get_real_lock_()
380 struct debug_lock *lock; in evthread_setup_global_lock_() local
388 lock = mm_malloc(sizeof(struct debug_lock)); in evthread_setup_global_lock_()
389 if (!lock) { in evthread_setup_global_lock_()
393 lock->lock = lock_; in evthread_setup_global_lock_()
394 lock->locktype = locktype; in evthread_setup_global_lock_()
395 lock->count = 0; in evthread_setup_global_lock_()
396 lock->held_by = 0; in evthread_setup_global_lock_()
397 return lock; in evthread_setup_global_lock_()
404 struct debug_lock *lock = lock_ ? lock_ : debug_lock_alloc(locktype); in evthread_setup_global_lock_() local
407 EVUTIL_ASSERT(lock->locktype == locktype); in evthread_setup_global_lock_()
408 if (!lock->lock) { in evthread_setup_global_lock_()
409 lock->lock = original_lock_fns_.alloc( in evthread_setup_global_lock_()
411 if (!lock->lock) { in evthread_setup_global_lock_()
412 lock->count = -200; in evthread_setup_global_lock_()
413 mm_free(lock); in evthread_setup_global_lock_()
417 return lock; in evthread_setup_global_lock_()
441 evthreadimpl_lock_free_(void *lock, unsigned locktype) in evthreadimpl_lock_free_() argument
444 evthread_lock_fns_.free(lock, locktype); in evthreadimpl_lock_free_()
447 evthreadimpl_lock_lock_(unsigned mode, void *lock) in evthreadimpl_lock_lock_() argument
449 if (evthread_lock_fns_.lock) in evthreadimpl_lock_lock_()
450 return evthread_lock_fns_.lock(mode, lock); in evthreadimpl_lock_lock_()
455 evthreadimpl_lock_unlock_(unsigned mode, void *lock) in evthreadimpl_lock_unlock_() argument
458 return evthread_lock_fns_.unlock(mode, lock); in evthreadimpl_lock_unlock_()
489 evthreadimpl_cond_wait_(void *cond, void *lock, const struct timeval *tv) in evthreadimpl_cond_wait_() argument
492 return evthread_cond_fns_.wait_condition(cond, lock, tv); in evthreadimpl_cond_wait_()
505 return evthread_lock_fns_.lock != NULL; in evthreadimpl_locking_enabled_()