Beispiel #1
0
P_LIB_API pboolean
p_rwlock_writer_trylock (PRWLock *lock)
{
	if (P_UNLIKELY (lock == NULL))
		return FALSE;

	return (rw_trywrlock (&lock->hdl) == 0) ? TRUE : FALSE;
}
Beispiel #2
0
int
rw_tryenter(krwlock_t *rwlp, krw_t rw)
{
	int rv;

	if (rw == RW_WRITER) {
		rv = rw_trywrlock(&rwlp->rw_lock);
		if (rv == 0)
			rwlp->rw_owner = _curthread();
	} else
		rv = rw_tryrdlock(&rwlp->rw_lock);

	return ((rv == 0) ? 1 : 0);
}