pub struct Condvar {
pub inner: UPIntrFreeCell<CondvarInner>,
}Expand description
Condvar
Fields§
§inner: UPIntrFreeCell<CondvarInner>UPIntrFreeCell
Implementations§
Source§impl Condvar
impl Condvar
Sourcepub fn signal(&self) -> Option<CondvarSignalResult>
pub fn signal(&self) -> Option<CondvarSignalResult>
唤醒某个阻塞在当前条件变量上的线程
Sourcepub fn wait_no_sched(
&self,
tid: ThreadId,
mutex_id: usize,
mutex: Arc<dyn Mutex>,
) -> bool
pub fn wait_no_sched( &self, tid: ThreadId, mutex_id: usize, mutex: Arc<dyn Mutex>, ) -> bool
将当前线程阻塞在条件变量上
Sourcepub fn wait_with_mutex(
&self,
tid: ThreadId,
mutex_id: usize,
mutex: Arc<dyn Mutex>,
) -> CondvarWaitResult
pub fn wait_with_mutex( &self, tid: ThreadId, mutex_id: usize, mutex: Arc<dyn Mutex>, ) -> CondvarWaitResult
原子地释放互斥锁并把线程挂到条件变量队列。
被 signal 的线程会在 signal 路径上重新竞争互斥锁, 只有真正拿到锁之后才会返回到用户态。
Auto Trait Implementations§
impl !Freeze for Condvar
impl !RefUnwindSafe for Condvar
impl Send for Condvar
impl Sync for Condvar
impl Unpin for Condvar
impl UnsafeUnpin for Condvar
impl !UnwindSafe for Condvar
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more