gmain: Explicitly document the threading behaviour of g_timeout_add()

i.e. That calling g_timeout_add() from a thread other than the main one
probably doesn’t do what you want. Same for g_idle_add() and the
*_full() variants.

https://bugzilla.gnome.org/show_bug.cgi?id=741779
This commit is contained in:
Philip Withnall 2014-12-19 15:33:59 +00:00
parent 4aedc85fb3
commit 8df6e5fa3f

View File

@ -4636,8 +4636,10 @@ g_timeout_source_new_seconds (guint interval)
* (it does not try to 'catch up' time lost in delays). * (it does not try to 'catch up' time lost in delays).
* *
* This internally creates a main loop source using g_timeout_source_new() * This internally creates a main loop source using g_timeout_source_new()
* and attaches it to the main loop context using g_source_attach(). You can * and attaches it to the global #GMainContext using g_source_attach(), so
* do these steps manually if you need greater control. * 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.
* *
* The interval given in terms of monotonic time, not wall clock time. * The interval given in terms of monotonic time, not wall clock time.
* See g_get_monotonic_time(). * See g_get_monotonic_time().
@ -4694,8 +4696,10 @@ g_timeout_add_full (gint priority,
* optimizations and more efficient system power usage. * optimizations and more efficient system power usage.
* *
* This internally creates a main loop source using g_timeout_source_new() * This internally creates a main loop source using g_timeout_source_new()
* and attaches it to the main loop context using g_source_attach(). You can * and attaches it to the global #GMainContext using g_source_attach(), so
* do these steps manually if you need greater control. * 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.
* *
* The interval given is in terms of monotonic time, not wall clock * The interval given is in terms of monotonic time, not wall clock
* time. See g_get_monotonic_time(). * time. See g_get_monotonic_time().
@ -5429,8 +5433,10 @@ g_idle_source_new (void)
* removed from the list of event sources and will not be called again. * removed from the list of event sources and will not be called again.
* *
* This internally creates a main loop source using g_idle_source_new() * This internally creates a main loop source using g_idle_source_new()
* and attaches it to the main loop context using g_source_attach(). * and attaches it to the global #GMainContext using g_source_attach(), so
* You can do these steps manually if you need greater control. * 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.
* *
* Returns: the ID (greater than 0) of the event source. * Returns: the ID (greater than 0) of the event source.
* Rename to: g_idle_add * Rename to: g_idle_add
@ -5470,8 +5476,10 @@ g_idle_add_full (gint priority,
* sources and will not be called again. * sources and will not be called again.
* *
* This internally creates a main loop source using g_idle_source_new() * This internally creates a main loop source using g_idle_source_new()
* and attaches it to the main loop context using g_source_attach(). * and attaches it to the global #GMainContext using g_source_attach(), so
* You can do these steps manually if you need greater control. * 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.
* *
* Returns: the ID (greater than 0) of the event source. * Returns: the ID (greater than 0) of the event source.
**/ **/