File: fsm-health.h

package info (click to toggle)
cgit 1.2.3%2Bgit20240802.70.09d24d7%2Bgit2.46.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 56,184 kB
  • sloc: ansic: 301,641; sh: 254,574; perl: 29,353; tcl: 22,151; makefile: 4,198; python: 3,594; javascript: 810; csh: 45; ruby: 43; lisp: 12
file content (47 lines) | stat: -rw-r--r-- 1,381 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#ifndef FSM_HEALTH_H
#define FSM_HEALTH_H

/* This needs to be implemented by each backend */

#ifdef HAVE_FSMONITOR_DAEMON_BACKEND

struct fsmonitor_daemon_state;

/*
 * Initialize platform-specific data for the fsmonitor health thread.
 * This will be called from the main thread PRIOR to staring the
 * thread.
 *
 * Returns 0 if successful.
 * Returns -1 otherwise.
 */
int fsm_health__ctor(struct fsmonitor_daemon_state *state);

/*
 * Cleanup platform-specific data for the health thread.
 * This will be called from the main thread AFTER joining the thread.
 */
void fsm_health__dtor(struct fsmonitor_daemon_state *state);

/*
 * The main body of the platform-specific event loop to monitor the
 * health of the daemon process.  This will run in the health thread.
 *
 * The health thread should call `ipc_server_stop_async()` if it needs
 * to cause a shutdown.  (It should NOT do so if it receives a shutdown
 * shutdown signal.)
 *
 * It should set `state->health_error_code` to -1 if the daemon should exit
 * with an error.
 */
void fsm_health__loop(struct fsmonitor_daemon_state *state);

/*
 * Gently request that the health thread shutdown.
 * It does not wait for it to stop.  The caller should do a JOIN
 * to wait for it.
 */
void fsm_health__stop_async(struct fsmonitor_daemon_state *state);

#endif /* HAVE_FSMONITOR_DAEMON_BACKEND */
#endif /* FSM_HEALTH_H */