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.