2012-01-27 81 views

回答

0

如何在超时等待信号量?如果超时激发,请立即锁定队列并检查计数。这只会给出一个粗略的指导 - 生产者可以在超时和锁定队列之间排队一个对象,但它可能使您能够调试您的P-C队列。

+0

你如何检查win api信号量的计数?我找不到这样的功能... 我不需要这个用于调试的目的,但我需要解决在reader-writers问题中的饥饿,我在我的程序中,所以我必须检查是否有任何作者被阻止并等待... – 2012-01-27 15:11:26

+0

对不起,我的意思是队列数。 IIRC,ReleaseSeamphore()可以返回以前的计数 - 可能会有用。你得到什么样的队列有什么问题?我没有看到Windows信号量的任何问题,我用它们计数/阻止生产者 - 消费者队列。 – 2012-01-27 18:14:43

+0

我没有任何信号量问题,我只需要正确地同步读者和作者,这样就不会有任何饥饿......因此,当读者请求阅读时,他必须检查是否存在正在写作的作者,或者如果有一个作者在等待队列中(在信号量上被阻塞),并且如果情况是这样的话,阅读器必须保持阻塞在另一个信号量上... – 2012-01-27 22:05:52