Rust 当两个条件变量之一发出通知时,是否可以等待并返回?

Rust 当两个条件变量之一发出通知时,是否可以等待并返回?,rust,mutex,condition-variable,Rust,Mutex,Condition Variable,Condvar在Rust中的用法如下: let pair = Arc::new((Mutex::new(true), Condvar::new())); //... let (lock, cvar) = &*pair; let _guard = cvar.wait_while(lock.lock().unwrap(), SOMETHING_HERE).unwrap(); 有什么东西我可以放在这里以正确的方式等待吗?我在想解决这个问题的最简单方法 我的想法是让第三个条件变量等待与其他条件

Condvar
在Rust中的用法如下:

let pair = Arc::new((Mutex::new(true), Condvar::new()));
//...
let (lock, cvar) = &*pair;
let _guard = cvar.wait_while(lock.lock().unwrap(), SOMETHING_HERE).unwrap();
有什么东西我可以放在这里以正确的方式等待吗?我在想解决这个问题的最简单方法


我的想法是让第三个条件变量等待与其他条件相关的两个变量,但我不知道如何做到这一点。

创建第三个
Condvar
,记住每次通知前两个变量时都要通知它


无论如何,请考虑使用一个
Condvar
。由于它们可能会错误地醒来,因此您已经需要检查“谓词”,即
互斥体是否确实有任何相关更改

创建第三个
Condvar
,并记住每次通知前两个中的任何一个时都要通知它

无论如何,请考虑使用一个
Condvar
。由于它们可能会错误地醒来,因此您已经需要检查“谓词”,即
互斥体是否确实有任何相关更改