2011-05-29 64 views
2

我在写一个Linux内核模块。 有两个进程A,B和两个等待队列WQA和WQB。目前A程序正在WQA上休眠。在等待队列中唤醒进程

我希望A在B睡在WQB上时醒来,这样当A开始时B已经在WQB上等待。我如何自动唤醒A并将B置于WQB上?

+0

为什么你想要这个...? – bdonlan 2011-05-29 06:17:58

回答

2

使用2个信号灯怎么样?

进程A在信号量A处睡眠。然后进程B将会提升信号量A并向信号量B请求向下(),这将使他睡眠。再次,一旦A完成他的工作,它可以提高信号量B(并唤醒B),然后在信号量A上进入睡眠状态。