pacemaker
2.1.3-ea053b43a
Scalable High-Availability cluster resource manager
|
Wrappers for and extensions to glib mainloop. More...
#include <signal.h>
#include <glib.h>
#include <stdbool.h>
#include <crm/common/ipc.h>
#include <qb/qbipcs.h>
#include <crm/common/mainloop_compat.h>
Go to the source code of this file.
Data Structures | |
struct | ipc_client_callbacks |
struct | mainloop_fd_callbacks |
Macros | |
#define | G_PRIORITY_MEDIUM (G_PRIORITY_HIGH/2) |
Typedefs | |
typedef struct trigger_s | crm_trigger_t |
typedef struct mainloop_io_s | mainloop_io_t |
typedef struct mainloop_child_s | mainloop_child_t |
typedef struct mainloop_timer_s | mainloop_timer_t |
typedef void(* | sighandler_t) (int) |
Enumerations | |
enum | mainloop_child_flags { mainloop_leave_pid_group = 0x01 } |
Functions | |
void | mainloop_cleanup (void) |
crm_trigger_t * | mainloop_add_trigger (int priority, int(*dispatch)(gpointer user_data), gpointer userdata) |
Create a trigger to be used as a mainloop source. More... | |
void | mainloop_set_trigger (crm_trigger_t *source) |
void | mainloop_trigger_complete (crm_trigger_t *trig) |
gboolean | mainloop_destroy_trigger (crm_trigger_t *source) |
sighandler_t | crm_signal_handler (int sig, sighandler_t dispatch) |
gboolean | mainloop_add_signal (int sig, void(*dispatch)(int sig)) |
gboolean | mainloop_destroy_signal (int sig) |
bool | mainloop_timer_running (mainloop_timer_t *t) |
void | mainloop_timer_start (mainloop_timer_t *t) |
void | mainloop_timer_stop (mainloop_timer_t *t) |
guint | mainloop_timer_set_period (mainloop_timer_t *t, guint period_ms) |
mainloop_timer_t * | mainloop_timer_add (const char *name, guint period_ms, bool repeat, GSourceFunc cb, void *userdata) |
void | mainloop_timer_del (mainloop_timer_t *t) |
qb_ipcs_service_t * | mainloop_add_ipc_server (const char *name, enum qb_ipc_type type, struct qb_ipcs_service_handlers *callbacks) |
qb_ipcs_service_t * | mainloop_add_ipc_server_with_prio (const char *name, enum qb_ipc_type type, struct qb_ipcs_service_handlers *callbacks, enum qb_loop_priority prio) |
Start server-side API end-point, hooked into the internal event loop. More... | |
void | mainloop_del_ipc_server (qb_ipcs_service_t *server) |
mainloop_io_t * | mainloop_add_ipc_client (const char *name, int priority, size_t max_size, void *userdata, struct ipc_client_callbacks *callbacks) |
void | mainloop_del_ipc_client (mainloop_io_t *client) |
crm_ipc_t * | mainloop_get_ipc_client (mainloop_io_t *client) |
mainloop_io_t * | mainloop_add_fd (const char *name, int priority, int fd, void *userdata, struct mainloop_fd_callbacks *callbacks) |
void | mainloop_del_fd (mainloop_io_t *client) |
void | mainloop_child_add (pid_t pid, int timeout, const char *desc, void *userdata, void(*callback)(mainloop_child_t *p, pid_t pid, int core, int signo, int exitcode)) |
void | mainloop_child_add_with_flags (pid_t pid, int timeout, const char *desc, void *userdata, enum mainloop_child_flags, void(*callback)(mainloop_child_t *p, pid_t pid, int core, int signo, int exitcode)) |
void * | mainloop_child_userdata (mainloop_child_t *child) |
int | mainloop_child_timeout (mainloop_child_t *child) |
const char * | mainloop_child_name (mainloop_child_t *child) |
pid_t | mainloop_child_pid (mainloop_child_t *child) |
void | mainloop_clear_child_userdata (mainloop_child_t *child) |
gboolean | mainloop_child_kill (pid_t pid) |
void | pcmk_quit_main_loop (GMainLoop *mloop, unsigned int n) |
Drain some remaining main loop events then quit it. More... | |
void | pcmk_drain_main_loop (GMainLoop *mloop, guint timer_ms, bool(*check)(guint)) |
Process main loop events while a certain condition is met. More... | |
Wrappers for and extensions to glib mainloop.
Definition in file mainloop.h.
#define G_PRIORITY_MEDIUM (G_PRIORITY_HIGH/2) |
Definition at line 182 of file mainloop.h.
typedef struct trigger_s crm_trigger_t |
Definition at line 32 of file mainloop.h.
typedef struct mainloop_child_s mainloop_child_t |
Definition at line 34 of file mainloop.h.
typedef struct mainloop_io_s mainloop_io_t |
Definition at line 33 of file mainloop.h.
typedef struct mainloop_timer_s mainloop_timer_t |
Definition at line 35 of file mainloop.h.
typedef void(* sighandler_t) (int) |
Definition at line 49 of file mainloop.h.
enum mainloop_child_flags |
Enumerator | |
---|---|
mainloop_leave_pid_group |
Definition at line 27 of file mainloop.h.
sighandler_t crm_signal_handler | ( | int | sig, |
sighandler_t | dispatch | ||
) |
Definition at line 307 of file mainloop.c.
mainloop_io_t* mainloop_add_fd | ( | const char * | name, |
int | priority, | ||
int | fd, | ||
void * | userdata, | ||
struct mainloop_fd_callbacks * | callbacks | ||
) |
Definition at line 976 of file mainloop.c.
mainloop_io_t* mainloop_add_ipc_client | ( | const char * | name, |
int | priority, | ||
size_t | max_size, | ||
void * | userdata, | ||
struct ipc_client_callbacks * | callbacks | ||
) |
Definition at line 936 of file mainloop.c.
qb_ipcs_service_t* mainloop_add_ipc_server | ( | const char * | name, |
enum qb_ipc_type | type, | ||
struct qb_ipcs_service_handlers * | callbacks | ||
) |
Definition at line 670 of file mainloop.c.
qb_ipcs_service_t* mainloop_add_ipc_server_with_prio | ( | const char * | name, |
enum qb_ipc_type | type, | ||
struct qb_ipcs_service_handlers * | callbacks, | ||
enum qb_loop_priority | prio | ||
) |
Start server-side API end-point, hooked into the internal event loop.
[in] | name | name of the IPC end-point ("address" for the client) |
[in] | type | selects libqb's IPC back-end (or use #QB_IPC_NATIVE) |
[in] | callbacks | defines libqb's IPC service-level handlers |
[in] | priority | priority relative to other events handled in the abstract handling loop, use #QB_LOOP_MED when unsure |
priority
as #QB_LOOP_MED, stick with mainloop_add_ipc_server (with exactly such semantics) instead (once you link with this new symbol employed, you can't downgrade the library freely anymore).Definition at line 677 of file mainloop.c.
gboolean mainloop_add_signal | ( | int | sig, |
void(*)(int sig) | dispatch | ||
) |
Definition at line 355 of file mainloop.c.
crm_trigger_t* mainloop_add_trigger | ( | int | priority, |
int(*)(gpointer user_data) | dispatch, | ||
gpointer | userdata | ||
) |
Create a trigger to be used as a mainloop source.
[in] | priority | Relative priority of source (lower number is higher priority) |
[in] | dispatch | Trigger dispatch function (should return 0 to remove the trigger from the mainloop, -1 if the trigger should be kept but the job is still running and not complete, and 1 if the trigger should be kept and the job is complete) |
Definition at line 186 of file mainloop.c.
void mainloop_child_add | ( | pid_t | pid, |
int | timeout, | ||
const char * | desc, | ||
void * | userdata, | ||
void(*)(mainloop_child_t *p, pid_t pid, int core, int signo, int exitcode) | callback | ||
) |
Definition at line 1303 of file mainloop.c.
void mainloop_child_add_with_flags | ( | pid_t | pid, |
int | timeout, | ||
const char * | desc, | ||
void * | userdata, | ||
enum | mainloop_child_flags, | ||
void(*)(mainloop_child_t *p, pid_t pid, int core, int signo, int exitcode) | callback | ||
) |
Definition at line 1272 of file mainloop.c.
gboolean mainloop_child_kill | ( | pid_t | pid | ) |
Definition at line 1216 of file mainloop.c.
const char* mainloop_child_name | ( | mainloop_child_t * | child | ) |
Definition at line 1042 of file mainloop.c.
pid_t mainloop_child_pid | ( | mainloop_child_t * | child | ) |
Definition at line 1036 of file mainloop.c.
int mainloop_child_timeout | ( | mainloop_child_t * | child | ) |
Definition at line 1048 of file mainloop.c.
void* mainloop_child_userdata | ( | mainloop_child_t * | child | ) |
Definition at line 1054 of file mainloop.c.
void mainloop_cleanup | ( | void | ) |
Definition at line 429 of file mainloop.c.
void mainloop_clear_child_userdata | ( | mainloop_child_t * | child | ) |
Definition at line 1060 of file mainloop.c.
void mainloop_del_fd | ( | mainloop_io_t * | client | ) |
Definition at line 1020 of file mainloop.c.
void mainloop_del_ipc_client | ( | mainloop_io_t * | client | ) |
Definition at line 961 of file mainloop.c.
void mainloop_del_ipc_server | ( | qb_ipcs_service_t * | server | ) |
Definition at line 714 of file mainloop.c.
gboolean mainloop_destroy_signal | ( | int | sig | ) |
Definition at line 409 of file mainloop.c.
gboolean mainloop_destroy_trigger | ( | crm_trigger_t * | source | ) |
Definition at line 206 of file mainloop.c.
crm_ipc_t* mainloop_get_ipc_client | ( | mainloop_io_t * | client | ) |
Definition at line 967 of file mainloop.c.
void mainloop_set_trigger | ( | crm_trigger_t * | source | ) |
Definition at line 198 of file mainloop.c.
mainloop_timer_t* mainloop_timer_add | ( | const char * | name, |
guint | period_ms, | ||
bool | repeat, | ||
GSourceFunc | cb, | ||
void * | userdata | ||
) |
Definition at line 1386 of file mainloop.c.
void mainloop_timer_del | ( | mainloop_timer_t * | t | ) |
Definition at line 1407 of file mainloop.c.
bool mainloop_timer_running | ( | mainloop_timer_t * | t | ) |
Definition at line 1341 of file mainloop.c.
guint mainloop_timer_set_period | ( | mainloop_timer_t * | t, |
guint | period_ms | ||
) |
Definition at line 1370 of file mainloop.c.
void mainloop_timer_start | ( | mainloop_timer_t * | t | ) |
Definition at line 1350 of file mainloop.c.
void mainloop_timer_stop | ( | mainloop_timer_t * | t | ) |
Definition at line 1360 of file mainloop.c.
void mainloop_trigger_complete | ( | crm_trigger_t * | trig | ) |
Definition at line 168 of file mainloop.c.
void pcmk_drain_main_loop | ( | GMainLoop * | mloop, |
guint | timer_ms, | ||
bool(*)(guint) | check | ||
) |
Process main loop events while a certain condition is met.
[in] | mloop | Main loop to process |
[in] | timer_ms | Don't process longer than this amount of time |
[in] | check | Function that returns TRUE if events should be processed |
Definition at line 1465 of file mainloop.c.
void pcmk_quit_main_loop | ( | GMainLoop * | mloop, |
unsigned int | n | ||
) |
Drain some remaining main loop events then quit it.
[in] | mloop | Main loop to drain and quit |
[in] | n | Drain up to this many pending events |
Definition at line 1437 of file mainloop.c.