[glib] gmain: Explicitly document the threading behaviour of g_timeout_add()
- From: Philip Withnall <pwithnall src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib] gmain: Explicitly document the threading behaviour of g_timeout_add()
- Date: Tue, 3 Mar 2015 18:41:19 +0000 (UTC)
commit 8df6e5fa3ffeb74739d5d914669c7e245a84e46d
Author: Philip Withnall <philip withnall collabora co uk>
Date: Fri Dec 19 15:33:59 2014 +0000
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
glib/gmain.c | 24 ++++++++++++++++--------
1 files changed, 16 insertions(+), 8 deletions(-)
---
diff --git a/glib/gmain.c b/glib/gmain.c
index e20128a..d5661bb 100644
--- a/glib/gmain.c
+++ b/glib/gmain.c
@@ -4636,8 +4636,10 @@ g_timeout_source_new_seconds (guint interval)
* (it does not try to 'catch up' time lost in delays).
*
* 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
- * do these steps manually if you need greater control.
+ * and attaches it to the global #GMainContext using g_source_attach(), so
+ * 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.
* See g_get_monotonic_time().
@@ -4694,8 +4696,10 @@ g_timeout_add_full (gint priority,
* optimizations and more efficient system power usage.
*
* 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
- * do these steps manually if you need greater control.
+ * and attaches it to the global #GMainContext using g_source_attach(), so
+ * 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
* 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.
*
* This internally creates a main loop source using g_idle_source_new()
- * and attaches it to the main loop context using g_source_attach().
- * You can do these steps manually if you need greater control.
+ * and attaches it to the global #GMainContext using g_source_attach(), so
+ * 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.
* Rename to: g_idle_add
@@ -5470,8 +5476,10 @@ g_idle_add_full (gint priority,
* sources and will not be called again.
*
* This internally creates a main loop source using g_idle_source_new()
- * and attaches it to the main loop context using g_source_attach().
- * You can do these steps manually if you need greater control.
+ * and attaches it to the global #GMainContext using g_source_attach(), so
+ * 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.
**/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]