Only add task when waking up a sleeping task

This commit is contained in:
Jianfeng Jiang
2023-07-06 17:43:40 +08:00
committed by Tate, Hongliang Tian
parent d692c102ae
commit 9f1680d0f3

View File

@ -121,8 +121,12 @@ impl Waiter {
}
pub fn wake_up(&self) {
self.is_woken_up.store(true, Ordering::SeqCst);
add_task(self.task.clone());
if let Ok(false) =
self.is_woken_up
.compare_exchange(false, true, Ordering::Acquire, Ordering::Relaxed)
{
add_task(self.task.clone());
}
}
pub fn set_finished(&self) {