#include <nitro/os.h>
BOOL OS_SendMessage(
OSMessageQueue* mq,
OSMessage msg,
s32 flag );
mq | Pointer to the message queue |
msg | Transmission message |
flag | When OS_MESSAGE_BLOCK is set, OS_SendMessage blocks when the queue is full. When OS_MESSAGE_NOBLOCK is set, OS_SendMessage returns whether the queue is full or not. |
TRUE
is returned when the message is successfully sent. FALSE
is returned when the queue is full and OS_MESSAGE_NOBLOCK
is specified.
Inserts a message at the end of the specified message queue. Also, puts the threads waiting in the message queue into executable state. The receiving threads are executed in order of priority.
If OS_MESSAGE_BLOCK
is set in flag
and the queue is full, the thread that called this function is temporarily stopped. This thread immediately restarts when a receiving thread operates to remove messages from the queue. Be aware that if there are any other sending threads with a higher priority, those will operate first and the queue may fill up again. In such a case, this thread will be suspended again until the receiving thread makes an opening in the message queue.
When OS_MESSAGE_NOBLOCK
is set in flag
, the called thread is returned to immediately. When the queue is not full, TRUE
is returned. If the queue is full, FALSE
is returned.
OS_InitMessageQueue
OS_ReceiveMessage
OS_JamMessage
2003/12/05 Initial version.
CONFIDENTIAL