Structures and functions for enqueueing and dequeuing general-purpose messages from a queue. More...
#include <stdbool.h>#include <inttypes.h>#include <unistd.h>#include <pthread.h>#include <semaphore.h>Go to the source code of this file.
Classes | |
| struct | dedos_msg |
| A linked-list entry containing a message. More... | |
| struct | msg_queue |
| Container for linked list message queue. More... | |
Enumerations | |
| enum | dedos_msg_type { RUNTIME_MSG, THREAD_MSG, MSU_MSG } |
| Messages can either be for delivery to runtime, thread, or MSU. More... | |
Functions | |
| struct dedos_msg * | dequeue_msg (struct msg_queue *q) |
Dequeues the first available message from q. More... | |
| int | enqueue_msg (struct msg_queue *q, struct dedos_msg *msg) |
| Enqueues a message to be delivered as soon as possible. More... | |
| int | schedule_msg (struct msg_queue *q, struct dedos_msg *msg, struct timespec *interval) |
Schedules a message to be delivered once interval time has passed. More... | |
| int | init_msg_queue (struct msg_queue *q, sem_t *sem) |
| Initilializes a mesasge queue to have no messages in it, and sets up the mutex and semaphore. More... | |
Structures and functions for enqueueing and dequeuing general-purpose messages from a queue.
Definition in file message_queue.h.
| enum dedos_msg_type |
Messages can either be for delivery to runtime, thread, or MSU.
| Enumerator | |
|---|---|
| RUNTIME_MSG | |
| THREAD_MSG | |
| MSU_MSG | |
Definition at line 35 of file message_queue.h.
Dequeues the first available message from q.
If there are no messages, or no messages with a suitable delivery time, returns NULL.
Definition at line 87 of file message_queue.c.
Enqueues a message to be delivered as soon as possible.
Definition at line 34 of file message_queue.c.
| int init_msg_queue | ( | struct msg_queue * | q, |
| sem_t * | sem | ||
| ) |
Initilializes a mesasge queue to have no messages in it, and sets up the mutex and semaphore.
Definition at line 153 of file message_queue.c.
Schedules a message to be delivered once interval time has passed.
Definition at line 38 of file message_queue.c.
1.8.6