|
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.
| 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.
| 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.
| bg_msg_t* bg_msg_queue_try_lock_read | ( | bg_msg_queue_t * | mq | ) |
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.
| bg_msg_t* bg_msg_queue_lock_write | ( | bg_msg_queue_t * | mq | ) |
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 |
1.7.3