#include <revolution/os.h>
BOOL OSJamMessage(
OSMessageQueue* mq,
OSMessage msg,
s32 flags);
mq |
Pointer to message queue. |
|---|---|
| msg | Message to send. |
| flags | If set to OS_MESSAGE_BLOCK, the OSJamMessage function will block a full queue. If set to OS_MESSAGE_NOBLOCK, the OSJamMessage function will return immediately whether the queue is full or not. |
Returns TRUE if the message was successfully sent.
Returns FALSE if OS_MESSAGE_NOBLOCK was specified and the queue is full.
The OSJamMessage function is similar to the OSSendMessage function 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. You can restart this thread by running a receiving thread and removing messages from the queue. Be aware that sending threads with a higher priority will execute first and may fill up the queue. In this case, this thread will be paused again until the receiving thread makes an opening in the message queue.
When OS_MESSAGE_NOBLOCK is set in flags, immediately returns to the calling thread. When the queue is not full, TRUE is returned. If the queue is full, FALSE is returned.
Thread Functions, Thread Synchronization Functions, OSInitMessageQueue, OSReceiveMessage, OSSendMessage
2006/03/01 Initial version.
CONFIDENTIAL