pacemaker
2.1.4-dc6eb4362
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 1494 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 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 * | privatedata, | ||
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 * | privatedata, | ||
enum mainloop_child_flags | 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.
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 894 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 927 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.
struct qb_ipcs_poll_handlers gio_poll_funcs |
Definition at line 637 of file mainloop.c.