0
0
Fork 0
mirror of https://github.com/netdata/netdata.git synced 2025-04-22 20:42:33 +00:00
netdata_netdata/daemon/static_threads.h
vkalintiris 37082fcbc1
Compute platform-specific list of static_threads at runtime. ()
Compute array of static threads at runtime.
2022-01-19 08:54:37 +02:00

46 lines
1.4 KiB
C

// SPDX-License-Identifier: GPL-3.0-or-later
#ifndef NETDATA_STATIC_THREADS_H
#define NETDATA_STATIC_THREADS_H
#include "common.h"
struct netdata_static_thread {
// the name of the thread as it should appear in the logs
char *name;
// the section of netdata.conf to check if this is enabled or not
char *config_section;
// the name of the config option to check if it is true or false
char *config_name;
// the current status of the thread
volatile sig_atomic_t enabled;
// internal use, to maintain a pointer to the created thread
netdata_thread_t *thread;
// an initialization function to run before spawning the thread
void (*init_routine) (void);
// the threaded worker
void *(*start_routine) (void *);
};
#define NETDATA_MAIN_THREAD_RUNNING CONFIG_BOOLEAN_YES
#define NETDATA_MAIN_THREAD_EXITING (CONFIG_BOOLEAN_YES + 1)
#define NETDATA_MAIN_THREAD_EXITED CONFIG_BOOLEAN_NO
extern const struct netdata_static_thread static_threads_common[];
extern const struct netdata_static_thread static_threads_linux[];
extern const struct netdata_static_thread static_threads_freebsd[];
extern const struct netdata_static_thread static_threads_macos[];
struct netdata_static_thread *
static_threads_concat(const struct netdata_static_thread *lhs,
const struct netdata_static_thread *rhs);
struct netdata_static_thread *static_threads_get();
#endif /* NETDATA_STATIC_THREADS_H */