我有std::sync::Semaphore
pub struct MyStruct {
lock: std::sync::Semaphore
}
有一个线程以某个间隔在信号量上调用release
,表示队列中有新项目可用。
同时,为了处理项目,我想获得信号量:
myStruct.lock.acquire();
但是在收购需要很长时间的情况下,我想做其他事情,比如返回错误代码而不是无限期地等待资源。但这个电话会永远阻止。
如何设置超时以便我只在信号量上等待有限的时间?