diff options
author | Sebastian Kloska <sebastian.kloska@daimler.com> | 2019-09-10 14:25:34 +0200 |
---|---|---|
committer | Saya Sugiura <39760799+ssugiura@users.noreply.github.com> | 2019-09-13 11:56:51 +0900 |
commit | 5f42ef3c92b3a1f5679e92ba3b2bb3a547c16da2 (patch) | |
tree | 229e98a7e06116883b1dae61c47b90ec889fe5db /src/system/dlt-system.h | |
parent | c9d1ba4b522afb79a719daea9e421724299f197f (diff) | |
download | DLT-daemon-5f42ef3c92b3a1f5679e92ba3b2bb3a547c16da2.tar.gz |
Proper setup and error checking of pthread_create
* Replace all start_XXX functions with one start_thread
* Don't make pthread_t static
* Don't use pthread_attr_t. Simply pass NULL
* Bail out when pthread_create() fails
* Check if MAX_THREADS gets exceeded
Signed-off-by: Sebastian Kloska <sebastian.kloska@daimler.com>
Diffstat (limited to 'src/system/dlt-system.h')
-rw-r--r-- | src/system/dlt-system.h | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/system/dlt-system.h b/src/system/dlt-system.h index 46738b8..e60cb9b 100644 --- a/src/system/dlt-system.h +++ b/src/system/dlt-system.h @@ -175,23 +175,25 @@ int read_configuration_file(DltSystemConfiguration *config, char *file_name); /* In dlt-process-handling.c */ int daemonize(); void start_threads(DltSystemConfiguration *config); +void start_thread(DltSystemConfiguration *conf, + void (thread)(void *), const char *nam); void join_threads(); void dlt_system_signal_handler(int sig); void register_with_dlt(DltSystemConfiguration *config); -/* Thread initiators: */ +/* Threads */ void init_shell(); -void start_syslog(); -void start_filetransfer(DltSystemConfiguration *conf); -void start_logfile(DltSystemConfiguration *conf); -void start_logprocess(DltSystemConfiguration *conf); +void syslog_thread(void *v_conf); +void filetransfer_thread(void *v_conf); +void logfile_thread(void *v_conf); +void logprocess_thread(void *v_conf); #if defined(DLT_SYSTEMD_WATCHDOG_ENABLE) -void start_systemd_watchdog(DltSystemConfiguration *conf); +void watchdog_thread(void *v_conf); #endif #if defined(DLT_SYSTEMD_JOURNAL_ENABLE) -void start_systemd_journal(DltSystemConfiguration *conf); +void journal_thread(void *v_conf); #endif #endif /* DLT_SYSTEM_H_ */ |