The GMainLoop struct is an opaque data type representing the main event loop of a GLib or GTK+ application.
GMainLoop
Returns the #GMainContext of @loop.
Checks to see if the main loop is currently being run via g_main_loop_run().
Stops a #GMainLoop from running. Any calls to g_main_loop_run() for the loop will return.
Increases the reference count on a #GMainLoop object by one.
Runs a main loop until g_main_loop_quit() is called on the loop. If this is called for the thread of the loop's #GMainContext, it will process events from the loop, otherwise it will simply wait.
Decreases the reference count on a #GMainLoop object by one. If the result is zero, free the loop and free all associated memory.