在ruby中,当使用ConditionVariable#wait
时,有没有办法判断是否发生了超时?
ConditionVariable#wait
可以将超时作为其第二个参数。文档说:
等待(互斥,超时=无)
释放互斥锁中的锁并等待;在唤醒时重新获得锁定。
如果给出超时,则此方法在超时秒数过后返回,即使没有其他线程没有发出信号。
看起来有什么东西可以告诉我是否发生超时。
这是一个我需要知道是否有超时的例子。
假设我有一个条件变量同步对某些共享资源的访问。在我的一个帖子中,我打电话给#wait
。如果没有超时,我很好。我锁定了与条件变量关联的互斥锁,我可以使用共享资源。如果超时,我不能保证锁定互斥锁,我无法安全地访问共享资源。我不知何故需要能够知道是否有超时。