#include <nitro/os.h>
BOOL OS_JamMessage(
OSMessageQueue* mq,
OSMessage msg,
s32 flags);
mq | Pointer to the message queue |
msg | Transmission message |
flags | When OS_MESSAGE_BLOCK is set, OS_JamMessage blocks the full queue. When OS_MESSAGE_NOBLOCK is set, OS_JamMessage returns whether or not the queue is full. |
TRUE
is returned when the message is successfully sent. FALSE
is returned when the queue is full and OS_MESSAGE_NOBLOCK
is specified.
OS_JamMessage()
is similar to OS_SendMessage
except that it inserts a message at the beginning of the specified message queue. Call this function when sending high-priority messages.
If OS_MESSAGE_BLOCK
is set in flags
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 flags
, the calling 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_SendMessage
, OS_ReceiveMessage
2003/12/01 Initial version.
CONFIDENTIAL