|
|
@ -71,15 +71,6 @@ ck_rwlock_write_lock(ck_rwlock_t *rw)
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
CK_CC_INLINE static void
|
|
|
|
|
|
|
|
ck_rwlock_write_unlock(ck_rwlock_t *rw)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ck_pr_fence_release();
|
|
|
|
|
|
|
|
ck_pr_store_32(&rw->writer, 0);
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CK_CC_INLINE static bool
|
|
|
|
CK_CC_INLINE static bool
|
|
|
|
ck_rwlock_write_trylock(ck_rwlock_t *rw)
|
|
|
|
ck_rwlock_write_trylock(ck_rwlock_t *rw)
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -97,6 +88,15 @@ ck_rwlock_write_trylock(ck_rwlock_t *rw)
|
|
|
|
return true;
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CK_CC_INLINE static void
|
|
|
|
|
|
|
|
ck_rwlock_write_unlock(ck_rwlock_t *rw)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ck_pr_fence_release();
|
|
|
|
|
|
|
|
ck_pr_store_32(&rw->writer, 0);
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
CK_CC_INLINE static bool
|
|
|
|
CK_CC_INLINE static bool
|
|
|
|
ck_rwlock_locked_writer(ck_rwlock_t *rw)
|
|
|
|
ck_rwlock_locked_writer(ck_rwlock_t *rw)
|
|
|
|
{
|
|
|
|
{
|
|
|
|