guint g_idle_add_full ( gint priority, GSourceFunc function, gpointer data, GDestroyNotify notify )
Adds a function to be called whenever there are no higher priority events pending.
If the function returns
FALSE it is automatically
removed from the list of event sources and will not be called again.
See [memory management of sources][mainloop-memory-management] for details
on how to handle the return value and memory management of
This internally creates a main loop source using
and attaches it to the global
the callback will be invoked in whichever thread is running that main
context. You can do these steps manually if you need greater control or to
use a custom main context.