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; }
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); }