检查ConditionVariable #wait中是否发生超时

时间:2014-10-16 22:26:10

标签: ruby condition-variable

在ruby中,当使用ConditionVariable#wait时,有没有办法判断是否发生了超时?

ConditionVariable#wait可以将超时作为其第二个参数。文档说:

  

等待(互斥,超时=无)

     

释放互斥锁中的锁并等待;在唤醒时重新获得锁定。

     

如果给出超时,则此方法在超时秒数过后返回,即使没有其他线程没有发出信号。

看起来有什么东西可以告诉我是否发生超时。

这是一个我需要知道是否有超时的例子。

假设我有一个条件变量同步对某些共享资源的访问。在我的一个帖子中,我打电话给#wait。如果没有超时,我很好。我锁定了与条件变量关联的互斥锁,我可以使用共享资源。如果超时,我不能保证锁定互斥锁,我无法安全地访问共享资源。我不知何故需要能够知道是否有超时。

0 个答案:

没有答案