gmerlin
|
Thread save message queues. More...
Typedefs | |
typedef struct bg_msg_queue_s | bg_msg_queue_t |
Opaque message queue type. You don't want to know what's inside. | |
Functions | |
bg_msg_queue_t * | bg_msg_queue_create () |
Create a message queue. | |
void | bg_msg_queue_destroy (bg_msg_queue_t *mq) |
Destroy a message queue. | |
bg_msg_t * | bg_msg_queue_lock_read (bg_msg_queue_t *mq) |
Lock a message queue for reading. | |
bg_msg_t * | bg_msg_queue_try_lock_read (bg_msg_queue_t *mq) |
Try to lock a message queue for reading. | |
void | bg_msg_queue_unlock_read (bg_msg_queue_t *mq) |
Unlock a message queue for reading. | |
bg_msg_t * | bg_msg_queue_lock_write (bg_msg_queue_t *mq) |
Lock a message queue for writing. | |
void | bg_msg_queue_unlock_write (bg_msg_queue_t *mq) |
Unlock a message queue for writing. | |
int | bg_msg_queue_peek (bg_msg_queue_t *mq, uint32_t *id) |
Check, if there is a message for readinbg available and get the ID. |
Thread save message queues.
typedef struct bg_msg_queue_s bg_msg_queue_t |
Opaque message queue type. You don't want to know what's inside.
Create a message queue.
void bg_msg_queue_destroy | ( | bg_msg_queue_t * | mq | ) |
Destroy a message queue.
mq | A message queue |
bg_msg_t* bg_msg_queue_lock_read | ( | bg_msg_queue_t * | mq | ) |
Lock a message queue for reading.
mq | A message queue |
This function blocks until a message arrives and returns the message. Use this function with caution to avoid deadlocks.
When you are done with the message, call bg_msg_queue_unlock_read. The message is owned by the queue and must not be freed.
Try to lock a message queue for reading.
mq | A message queue |
This function immediately returns NULL if there is no message for reading. When you are done with the message, call bg_msg_queue_unlock_read. The message is owned by the queue and must not be freed.
void bg_msg_queue_unlock_read | ( | bg_msg_queue_t * | mq | ) |
Unlock a message queue for reading.
mq | A message queue |
Call this to signal, that you are done with a message.
Lock a message queue for writing.
mq | A message queue |
When you are done setting the ID and arguments, call bg_msg_queue_unlock_write.
void bg_msg_queue_unlock_write | ( | bg_msg_queue_t * | mq | ) |
Unlock a message queue for writing.
mq | A message queue |
Call this to signal, that you are done with a message.
int bg_msg_queue_peek | ( | bg_msg_queue_t * | mq, |
uint32_t * | id | ||
) |
Check, if there is a message for readinbg available and get the ID.
mq | A message queue |
id | Might return the ID |