Lines Matching refs:lock
31 __mutex_init(mutex *lock, const char *name)
33 lock->name = name;
34 lock->lock = 0;
35 lock->flags = 0;
40 __mutex_init_etc(mutex *lock, const char *name, uint32 flags)
42 lock->name = (flags & MUTEX_FLAG_CLONE_NAME) != 0 ? strdup(name) : name;
43 lock->lock = 0;
44 lock->flags = flags;
47 lock->flags &= ~uint32(MUTEX_FLAG_ADAPTIVE);
52 __mutex_destroy(mutex *lock)
54 if ((lock->flags & MUTEX_FLAG_CLONE_NAME) != 0)
55 free(const_cast<char*>(lock->name));
60 __mutex_lock(mutex *lock)
64 = (lock->flags & MUTEX_FLAG_ADAPTIVE) != 0 ? MAX_UNSUCCESSFUL_SPINS : 1;
68 oldValue = atomic_test_and_set(&lock->lock, B_USER_MUTEX_LOCKED, 0);
76 error = _kern_mutex_lock(&lock->lock, lock->name, 0, 0);
84 __mutex_unlock(mutex *lock)
87 int32 oldValue = atomic_and(&lock->lock, ~(int32)B_USER_MUTEX_LOCKED);
90 _kern_mutex_unblock(&lock->lock, 0);