2011-05-29 92 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上進入睡眠狀態。