mirror of https://github.com/xacrimon/dashmap
impl downgrade
This commit is contained in:
parent
93ce0dcf8b
commit
3329a89a8e
|
@ -76,7 +76,12 @@ unsafe impl lock_api::RawRwLock for RawRwLock {
|
|||
unsafe impl lock_api::RawRwLockDowngrade for RawRwLock {
|
||||
#[inline]
|
||||
unsafe fn downgrade(&self) {
|
||||
todo!()
|
||||
let state = self
|
||||
.state
|
||||
.fetch_and(ONE_READER | WRITERS_PARKED, Ordering::Release);
|
||||
if state & READERS_PARKED != 0 {
|
||||
parking_lot_core::unpark_all((self as *const _ as usize) + 1, UnparkToken(0));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue