glib has added features over the years that we have not taken advantage of because they were not available when code was originally written. We should investigate which of these could be useful to replace or complement some Pacemaker APIs, especially:
- GIO low-level socket API and high-level network connection API
- GZlib{C,Dec}ompressor
- g_unix_open_pipe(), g_unix_set_fd_non_blocking(), g_unix_signal_source_new()
- g_hash_table_add(), g_hash_table_contains()
- return G_SOURCE_{CONTINUE,REMOVE} instead of TRUE/FALSE in all GSourceFunc's
- GSubprocess, g_test_trap_subprocess()
- GStringChunk could potentially store all string members in a struct
glib also has a GDBus API, but it uses threads, so we can't use that as it is now.