pacemaker  2.0.2-debe490
Scalable High-Availability cluster resource manager
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Typedefs | Enumerations | Functions
mainloop.h File Reference

Wrappers for and extensions to glib mainloop. More...

#include <signal.h>
#include <glib.h>
#include <crm/common/ipc.h>
#include <qb/qbipcs.h>
Include dependency graph for mainloop.h:
This graph shows which files directly or indirectly include this file:

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_tmainloop_add_trigger (int priority, int(*dispatch)(gpointer user_data), gpointer userdata)
 
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 crm_signal (int sig, void(*dispatch)(int sig))
 
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_tmainloop_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)
 
void mainloop_del_ipc_server (qb_ipcs_service_t *server)
 
mainloop_io_tmainloop_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_tmainloop_get_ipc_client (mainloop_io_t *client)
 
mainloop_io_tmainloop_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_drain_main_loop (GMainLoop *mloop, guint timer_ms, bool(*check)(guint))
 Process main loop events while a certain condition is met. More...
 

Detailed Description

Wrappers for and extensions to glib mainloop.

Definition in file mainloop.h.

Macro Definition Documentation

#define G_PRIORITY_MEDIUM   (G_PRIORITY_HIGH/2)

Definition at line 129 of file mainloop.h.

Typedef Documentation

typedef struct trigger_s crm_trigger_t

Definition at line 31 of file mainloop.h.

typedef struct mainloop_child_s mainloop_child_t

Definition at line 33 of file mainloop.h.

typedef struct mainloop_io_s mainloop_io_t

Definition at line 32 of file mainloop.h.

typedef struct mainloop_timer_s mainloop_timer_t

Definition at line 34 of file mainloop.h.

typedef void(* sighandler_t)(int)

Definition at line 48 of file mainloop.h.

Enumeration Type Documentation

Enumerator
mainloop_leave_pid_group 

Definition at line 26 of file mainloop.h.

Function Documentation

gboolean crm_signal ( int  sig,
void(*)(int sig)  dispatch 
)

Definition at line 358 of file mainloop.c.

sighandler_t crm_signal_handler ( int  sig,
sighandler_t  dispatch 
)

Definition at line 328 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 864 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 821 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 642 of file mainloop.c.

gboolean mainloop_add_signal ( int  sig,
void(*)(int sig)  dispatch 
)

Definition at line 386 of file mainloop.c.

crm_trigger_t* mainloop_add_trigger ( int  priority,
int(*)(gpointer user_data)  dispatch,
gpointer  userdata 
)

Definition at line 203 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 1185 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 1151 of file mainloop.c.

gboolean mainloop_child_kill ( pid_t  pid)

Definition at line 1096 of file mainloop.c.

const char* mainloop_child_name ( mainloop_child_t child)

Definition at line 930 of file mainloop.c.

pid_t mainloop_child_pid ( mainloop_child_t child)

Definition at line 924 of file mainloop.c.

int mainloop_child_timeout ( mainloop_child_t child)

Definition at line 936 of file mainloop.c.

void* mainloop_child_userdata ( mainloop_child_t child)

Definition at line 942 of file mainloop.c.

void mainloop_cleanup ( void  )

Definition at line 460 of file mainloop.c.

void mainloop_clear_child_userdata ( mainloop_child_t child)

Definition at line 948 of file mainloop.c.

void mainloop_del_fd ( mainloop_io_t client)

Definition at line 908 of file mainloop.c.

void mainloop_del_ipc_client ( mainloop_io_t client)

Definition at line 849 of file mainloop.c.

void mainloop_del_ipc_server ( qb_ipcs_service_t *  server)

Definition at line 672 of file mainloop.c.

gboolean mainloop_destroy_signal ( int  sig)

Definition at line 440 of file mainloop.c.

gboolean mainloop_destroy_trigger ( crm_trigger_t source)

Definition at line 223 of file mainloop.c.

crm_ipc_t* mainloop_get_ipc_client ( mainloop_io_t client)

Definition at line 855 of file mainloop.c.

void mainloop_set_trigger ( crm_trigger_t source)

Definition at line 215 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 1273 of file mainloop.c.

void mainloop_timer_del ( mainloop_timer_t t)

Definition at line 1294 of file mainloop.c.

bool mainloop_timer_running ( mainloop_timer_t t)

Definition at line 1230 of file mainloop.c.

guint mainloop_timer_set_period ( mainloop_timer_t t,
guint  period_ms 
)

Definition at line 1256 of file mainloop.c.

void mainloop_timer_start ( mainloop_timer_t t)

Definition at line 1238 of file mainloop.c.

void mainloop_timer_stop ( mainloop_timer_t t)

Definition at line 1247 of file mainloop.c.

void mainloop_trigger_complete ( crm_trigger_t trig)

Definition at line 191 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.

Parameters
[in]mloopMain loop to process
[in]timer_msDon't process longer than this amount of time
[in]checkFunction that returns TRUE if events should be processed
Note
This function is intended to be called at shutdown if certain important events should not be missed. The caller would likely quit the main loop or exit after calling this function. The check() function will be passed the remaining timeout in milliseconds.

Definition at line 1330 of file mainloop.c.