Messages can be sent to a queue with the
rtems_message_queue_send
and
rtems_message_queue_urgent
directives. These
directives work identically when tasks are waiting to receive a
message. A task is removed from the task waiting queue,
unblocked, and the message is copied to a waiting task's
message buffer.
When no tasks are waiting at the queue,
rtems_message_queue_send
places the
message at the rear of the message queue, while
rtems_message_queue_urgent
places the message at the
front of the queue. The message is copied to a message buffer
from this message queue's buffer pool and then placed in the
message queue. Neither directive can successfully send a
message to a message queue which has a full queue of pending
messages.
Copyright © 1988-2007OAR Corporation