|
pacemaker
2.1.0-7c3f660
Scalable High-Availability cluster resource manager
|
#include <crm_internal.h>#include <stdlib.h>#include <string.h>#include <signal.h>#include <errno.h>#include <sys/wait.h>#include <crm/crm.h>#include <crm/common/xml.h>#include <crm/common/mainloop.h>#include <crm/common/ipc_internal.h>#include <qb/qbarray.h>#include <crm/common/mainloop_compat.h>
Go to the source code of this file.
Macros | |
| #define | _GNU_SOURCE |
Typedefs | |
| typedef struct signal_s | crm_signal_t |
Functions | |
| void | mainloop_trigger_complete (crm_trigger_t *trig) |
| 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) |
| 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) |
| void | mainloop_cleanup (void) |
| 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) |
| int | pcmk__add_mainloop_ipc (crm_ipc_t *ipc, int priority, void *userdata, struct ipc_client_callbacks *callbacks, mainloop_io_t **source) |
| Connect to IPC and add it as a main loop source. More... | |
| guint | pcmk__mainloop_timer_get_period (mainloop_timer_t *timer) |
| Get period for mainloop timer. More... | |
| 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) |
| pid_t | mainloop_child_pid (mainloop_child_t *child) |
| const char * | mainloop_child_name (mainloop_child_t *child) |
| int | mainloop_child_timeout (mainloop_child_t *child) |
| void * | mainloop_child_userdata (mainloop_child_t *child) |
| void | mainloop_clear_child_userdata (mainloop_child_t *child) |
| gboolean | mainloop_child_kill (pid_t pid) |
| void | mainloop_child_add_with_flags (pid_t pid, int timeout, const char *desc, void *privatedata, enum mainloop_child_flags flags, void(*callback)(mainloop_child_t *p, pid_t pid, int core, int signo, int exitcode)) |
| void | mainloop_child_add (pid_t pid, int timeout, const char *desc, void *privatedata, void(*callback)(mainloop_child_t *p, pid_t pid, int core, int signo, int exitcode)) |
| 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) |
| 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... | |
| gboolean | crm_signal (int sig, void(*dispatch)(int sig)) |
Variables | |
| struct qb_ipcs_poll_handlers | gio_poll_funcs |
| #define _GNU_SOURCE |
Definition at line 13 of file mainloop.c.
| typedef struct signal_s crm_signal_t |
| gboolean crm_signal | ( | int | sig, |
| void(*)(int sig) | dispatch | ||
| ) |
Definition at line 1495 of file mainloop.c.
| 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 975 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 935 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 * | privatedata, | ||
| void(*)(mainloop_child_t *p, pid_t pid, int core, int signo, int exitcode) | callback | ||
| ) |
Definition at line 1305 of file mainloop.c.
| void mainloop_child_add_with_flags | ( | pid_t | pid, |
| int | timeout, | ||
| const char * | desc, | ||
| void * | privatedata, | ||
| enum mainloop_child_flags | flags, | ||
| void(*)(mainloop_child_t *p, pid_t pid, int core, int signo, int exitcode) | callback | ||
| ) |
Definition at line 1271 of file mainloop.c.
| gboolean mainloop_child_kill | ( | pid_t | pid | ) |
Definition at line 1215 of file mainloop.c.
| const char* mainloop_child_name | ( | mainloop_child_t * | child | ) |
Definition at line 1041 of file mainloop.c.
| pid_t mainloop_child_pid | ( | mainloop_child_t * | child | ) |
Definition at line 1035 of file mainloop.c.
| int mainloop_child_timeout | ( | mainloop_child_t * | child | ) |
Definition at line 1047 of file mainloop.c.
| void* mainloop_child_userdata | ( | mainloop_child_t * | child | ) |
Definition at line 1053 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 1059 of file mainloop.c.
| void mainloop_del_fd | ( | mainloop_io_t * | client | ) |
Definition at line 1019 of file mainloop.c.
| void mainloop_del_ipc_client | ( | mainloop_io_t * | client | ) |
Definition at line 960 of file mainloop.c.
| void mainloop_del_ipc_server | ( | qb_ipcs_service_t * | server | ) |
Definition at line 713 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 966 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 1388 of file mainloop.c.
| void mainloop_timer_del | ( | mainloop_timer_t * | t | ) |
Definition at line 1409 of file mainloop.c.
| bool mainloop_timer_running | ( | mainloop_timer_t * | t | ) |
Definition at line 1343 of file mainloop.c.
| guint mainloop_timer_set_period | ( | mainloop_timer_t * | t, |
| guint | period_ms | ||
| ) |
Definition at line 1372 of file mainloop.c.
| void mainloop_timer_start | ( | mainloop_timer_t * | t | ) |
Definition at line 1352 of file mainloop.c.
| void mainloop_timer_stop | ( | mainloop_timer_t * | t | ) |
Definition at line 1362 of file mainloop.c.
| void mainloop_trigger_complete | ( | crm_trigger_t * | trig | ) |
Definition at line 168 of file mainloop.c.
| int pcmk__add_mainloop_ipc | ( | crm_ipc_t * | ipc, |
| int | priority, | ||
| void * | userdata, | ||
| struct ipc_client_callbacks * | callbacks, | ||
| mainloop_io_t ** | source | ||
| ) |
Connect to IPC and add it as a main loop source.
| [in] | ipc | IPC connection to add |
| [in] | priority | Event source priority to use for connection |
| [in] | userdata | Data to register with callbacks |
| [in] | callbacks | Dispatch and destroy callbacks for connection |
| [out] | source | Newly allocated event source |
Definition at line 893 of file mainloop.c.
| guint pcmk__mainloop_timer_get_period | ( | mainloop_timer_t * | timer | ) |
Get period for mainloop timer.
| [in] | timer | Timer |
Definition at line 926 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 1467 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 1439 of file mainloop.c.
| struct qb_ipcs_poll_handlers gio_poll_funcs |
Definition at line 637 of file mainloop.c.
1.8.5