OS_ReceiveMessage

構文

#include <iris/os.h>
BOOL OS_ReceiveMessage(
     OSMessageQueue*   mq,
     OSMessage*        msg,
     s32               flags );
  

引数

mq メッセージキューへのポインタ
msg 送信するメッセージ
flags OS_MESSAGE_BLOCKを設定した場合、OS_ReceiveMessage関数は、一杯のキューをブロックします。 OS_MESSAGE_NOBLOCKを設定した場合、OS_ReceiveMessage関数は、キューが一杯であろうとなかろうと、 すぐに返ります。

返り値

メッセージがうまく取り出せた場合、TRUE を返します。
OS_MESSAGE_NOBLOCK が指定され、キューが空であった場合、FALSE を返します。

説明

メッセージキューからメッセージを取り出します。
また、このキューにメッセージを送るために待ち状態のスレッドをどれも実行可能状態にします。 送信スレッドは、優先順位の順に実行されます。

flagsOS_MESSAGE_BLOCKを設定した場合、キューが空 (empty) であれば、この関数を呼び出したスレッドは一時停止されます。メッセージがキューに送られるとすぐに再開されます。 より高い優先順位の受信スレッドが他にあった場合、これらのスレッドが最初に実行し、 メッセージを取り出す点に注意してください。このスレッドが実行する時にメッセージキューが空であった場合、 他のメッセージがキューに送られるまで、このスレッドは再び一時停止します。

flagsOS_MESSAGE_NOBLOCKを設定した場合、 呼び出したスレッドにすぐに戻ります。 キューが空でなければ、TRUEを返し、キューが空であればFALSEを返します。

参照

OS_InitMessageQueue, OS_SendMessage, OS_JamMessage

履歴

2003/12/01 初版