gmain: add g_source_add_child_source and g_source_remove_child_source
authorDan Winship <danw@gnome.org>
Sat, 6 Nov 2010 14:11:15 +0000 (10:11 -0400)
committerDan Winship <danw@gnome.org>
Fri, 26 Nov 2010 20:07:28 +0000 (15:07 -0500)
commitd15cdbefecc235cfa431ee7de9c35af174bd1552
tree1809d3561342666dc36cbb9b21e4797fc8878c1d
parente910205557b2461eaf1b2ce94176c6525cc716d1
gmain: add g_source_add_child_source and g_source_remove_child_source

This adds "child source" support to GSource. A child source behaves
basically like a GPollFD; when you add a source to a context, all of
its child sources are added with the same priority; when you destroy a
source, all of its child sources are destroyed; and when a child
source triggers, its parent source's dispatch function is run.

Use cases include:

    - adding a GTimeoutSource to another source to cause the source to
      automatically trigger after a certain timeout.

    - wrapping an existing source type with a new type that has
      a different callback signature

    - creating a source that triggers based on different conditions
      at different times.

https://bugzilla.gnome.org/show_bug.cgi?id=634239
docs/reference/glib/glib-sections.txt
glib/glib.symbols
glib/gmain.c
glib/gmain.h