#include <revolution/os.h>
BOOL OSSendMessage(
OSMessageQueue* mq,
OSMessage msg,
s32 flags);
mq |
Pointer to message queue. |
|---|---|
| msg | Message to send. |
| flags | When OS_MESSAGE_BLOCK is set, the OSSendMessage function blocks if the queue is full. When OS_MESSAGE_NOBLOCK is set, the OSSendMessage function returns whether or not the queue is full. |
Returns TRUE if the message was successfully sent.
Returns FALSE if OS_MESSAGE_NOBLOCK was specified and the queue is full.
Inserts a message at the end of the specified message queue. The function makes it possible for threads waiting in the message queue to execute. The receiving threads execute in order of priority.
If flags is set to OS_MESSAGE_BLOCK and the queue is full, the calling thread will be paused. 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 temporarily pause 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, OSJamMessage, OSReceiveMessage
2006/03/01 Initial version.
CONFIDENTIAL