A dedos_thread which monitors a queue for output to be sent to other runtimes or the global controller. More...
#include "logging.h"#include "worker_thread.h"#include "dedos_threads.h"#include "thread_message.h"#include "msu_type.h"#include "controller_communication.h"#include "ctrl_runtime_messages.h"#include "output_thread.h"#include "stats.h"#include <stdlib.h>#include <netinet/ip.h>Go to the source code of this file.
Macros | |
| #define | CHECK_MSG_SIZE(msg, target) |
| Checks whether the size of the message matches the size of the target struct. More... | |
| #define | STAT_REPORTING_DURATION_MS STAT_SAMPLE_PERIOD_MS |
| How often to report statistics. More... | |
Functions | |
| static void * | init_output_thread (struct dedos_thread *output_thread) |
| Initializes the static copy of the output thread. More... | |
| static int | output_thread_send_to_ctrl (struct send_to_ctrl_msg *msg) |
| Process a SEND_TO_CTRL message. More... | |
| static int | output_thread_send_to_peer (struct send_to_peer_msg *msg) |
| Process a SEND_TO_PEER message. More... | |
| static int | output_thread_connect_to_runtime (struct ctrl_add_runtime_msg *msg) |
| Process a CONNECT_TO_RUNTIME message. More... | |
| void | stop_output_monitor () |
| Triggers the output thread to stop execution. More... | |
| void | join_output_thread () |
| Joins the underlying pthread. More... | |
| static int | process_output_thread_msg (struct thread_msg *msg) |
| Processes a thread message that is delivered to the output thread. More... | |
| static int | check_output_thread_queue (struct dedos_thread *output_thread) |
| Checks the queue of the output thread for messages and acts on them if present. More... | |
| static int | output_thread_loop (struct dedos_thread *self, void UNUSED *init_data) |
| The main thread loop for the output thread. More... | |
| int | enqueue_for_output (struct thread_msg *msg) |
| Enqueues a thread_msg for delivery to the output thread. More... | |
| struct dedos_thread * | start_output_monitor_thread (void) |
| Starts the thread monitoring the queue for messages to be sent to other endpoints. More... | |
Variables | |
| static struct dedos_thread * | static_output_thread |
| A static copy of the output thread, so others can enqueue messages. More... | |
A dedos_thread which monitors a queue for output to be sent to other runtimes or the global controller.
Definition in file output_thread.c.
| #define CHECK_MSG_SIZE | ( | msg, | |
| target | |||
| ) |
Checks whether the size of the message matches the size of the target struct.
Definition at line 96 of file output_thread.c.
| #define STAT_REPORTING_DURATION_MS STAT_SAMPLE_PERIOD_MS |
How often to report statistics.
Definition at line 168 of file output_thread.c.
|
static |
Checks the queue of the output thread for messages and acts on them if present.
Definition at line 151 of file output_thread.c.
| int enqueue_for_output | ( | struct thread_msg * | thread_msg | ) |
Enqueues a thread_msg for delivery to the output thread.
Message should be of type CONNECT_TO_RUNTIME, SEND_TO_PEER, or SEND_TO_CTRL.
Definition at line 213 of file output_thread.c.
|
static |
Initializes the static copy of the output thread.
Definition at line 43 of file output_thread.c.
| void join_output_thread | ( | ) |
Joins the underlying pthread.
Definition at line 90 of file output_thread.c.
|
static |
Process a CONNECT_TO_RUNTIME message.
Definition at line 71 of file output_thread.c.
|
static |
The main thread loop for the output thread.
Checks the queue for messages, sends them, sends stats messages
Definition at line 174 of file output_thread.c.
|
static |
Process a SEND_TO_CTRL message.
Definition at line 49 of file output_thread.c.
|
static |
Process a SEND_TO_PEER message.
Definition at line 60 of file output_thread.c.
|
static |
Processes a thread message that is delivered to the output thread.
Definition at line 105 of file output_thread.c.
| struct dedos_thread* start_output_monitor_thread | ( | void | ) |
Starts the thread monitoring the queue for messages to be sent to other endpoints.
Definition at line 223 of file output_thread.c.
| void stop_output_monitor | ( | ) |
Triggers the output thread to stop execution.
Definition at line 86 of file output_thread.c.
|
static |
A static copy of the output thread, so others can enqueue messages.
Definition at line 40 of file output_thread.c.
1.8.6