master
h 51 lines 1.63 KB
Raw
1 // SPDX-License-Identifier: GPL-3.0-or-later
2
3 #ifndef DAEMON_WATCHER_H
4 #define DAEMON_WATCHER_H
5
6 #include "libnetdata/libnetdata.h"
7
8 typedef enum {
9 WATCHER_STEP_ID_CLOSE_WEBRTC_CONNECTIONS,
10 WATCHER_STEP_ID_DISABLE_MAINTENANCE_NEW_QUERIES_NEW_WEB_REQUESTS_NEW_STREAMING_CONNECTIONS,
11 WATCHER_STEP_ID_STOP_MAINTENANCE_THREAD,
12 WATCHER_STEP_ID_STOP_EXPORTERS_HEALTH_AND_WEB_SERVERS_THREADS,
13 WATCHER_STEP_ID_STOP_WEBSOCKET_THREADS,
14 WATCHER_STEP_ID_STOP_COLLECTORS_AND_STREAMING_THREADS,
15 WATCHER_STEP_ID_STOP_REPLICATION_THREADS,
16 WATCHER_STEP_ID_DISABLE_ML_DETEC_AND_TRAIN_THREADS,
17 WATCHER_STEP_ID_STOP_CONTEXT_THREAD,
18 WATCHER_STEP_ID_CLEAR_WEB_CLIENT_CACHE,
19 WATCHER_STEP_ID_STOP_ACLK_SYNC_THREAD,
20 WATCHER_STEP_ID_STOP_ACLK_MQTT_THREAD,
21 WATCHER_STEP_ID_STOP_ALL_REMAINING_WORKER_THREADS,
22 WATCHER_STEP_ID_CANCEL_MAIN_THREADS,
23 WATCHER_STEP_ID_STOP_COLLECTION_FOR_ALL_HOSTS,
24 WATCHER_STEP_ID_WAIT_FOR_DBENGINE_COLLECTORS_TO_FINISH,
25 WATCHER_STEP_ID_STOP_DBENGINE_TIERS,
26 WATCHER_STEP_ID_STOP_METASYNC_THREADS,
27 WATCHER_STEP_ID_JOIN_STATIC_THREADS,
28 WATCHER_STEP_ID_CLOSE_SQL_DATABASES,
29 WATCHER_STEP_ID_REMOVE_PID_FILE,
30 WATCHER_STEP_ID_FREE_OPENSSL_STRUCTURES,
31
32 // Always keep this as the last enum value
33 WATCHER_STEP_ID_MAX
34 } watcher_step_id_t;
35
36 typedef struct {
37 const char *msg;
38 struct completion p;
39 } watcher_step_t;
40
41 extern watcher_step_t *watcher_steps;
42
43 void watcher_thread_start(void);
44 void watcher_thread_stop(void);
45
46 void watcher_shutdown_begin(void);
47 void watcher_shutdown_end(void);
48
49 void watcher_step_complete(watcher_step_id_t step_id);
50
51 #endif /* DAEMON_WATCHER_H */