#include <iris/os.h>
BOOL OS_SendMessage(
OSMessageQueue* mq,
OSMessage msg,
s32 flags );
| mq | メッセージキューへのポインタ |
| msg | 送信するメッセージ |
| flags | OS_MESSAGE_BLOCKを設定した場合、OSJamMessage関数は、一杯のキューをブロックします。
OS_MESSAGE_NOBLOCKを設定した場合、OSJamMessage関数は、キューが一杯であろうとなかろうと、
すぐに返ります。 |
メッセージがうまく送られた場合、TRUE を返します。
OS_MESSAGE_NOBLOCK が指定され、キューが一杯である場合、FALSE を返します。
OSJamMessage関数は、指定したメッセージキューの先頭にメッセージ挿入されること以外は、
OSSendMessage関数と同じです。
この呼び出しは、優先順位の高いメッセージを伝達するために使います。
flags
にOS_MESSAGE_BLOCKを設定した場合、キューが一杯 (full)
であれば、この関数を呼び出したスレッドは一時停止されます。受信スレッドが動作して、
キューからメッセージを取り出すとすぐに再開されます。より高い優先順位の送信スレッドが他にあった場合、
それらが最初に動作し、再度メッセージキューが一杯になるかもしれない点に注意してください。
これが起こった場合、受信スレッドがメッセージキューに空きを作るまで、このスレッドは、再び一時停止します。
flags
にOS_MESSAGE_NOBLOCKを設定した場合、呼び出したスレッドにすぐに返ります。
キューが一杯でない場合、TRUEが返されます。キューが一杯であった場合、FALSEが返されます。
OS_InitMessageQueue, OS_SendMessage, OS_ReceiveMessage
2003/12/01 初版