+2005-12-20 Michael Meeks <michael.meeks@novell.com>
+
+ * glib/gmain.c (g_main_context_is_owner): new method
+ to determine if the current thread is the owner of the
+ context.
+
2006-01-02 Matthias Clasen <mclasen@redhat.com>
* glib/glib.symbols:
+2005-12-20 Michael Meeks <michael.meeks@novell.com>
+
+ * glib/gmain.c (g_main_context_is_owner): new method
+ to determine if the current thread is the owner of the
+ context.
+
2006-01-02 Matthias Clasen <mclasen@redhat.com>
* glib/glib.symbols:
+2005-12-20 Michael Meeks <michael.meeks@novell.com>
+
+ * glib/gmain.c (g_main_context_is_owner): new method
+ to determine if the current thread is the owner of the
+ context.
+
2006-01-02 Matthias Clasen <mclasen@redhat.com>
* glib/glib.symbols:
UNLOCK_CONTEXT (context);
}
+/**
+ * g_main_context_is_owner:
+ * @context: a #GMainContext
+ *
+ * Determines whether this thread holds the (recursive)
+ * ownership of this #GMaincontext. This is useful to
+ * know before waiting on another thread that may be
+ * blocking to get ownership of @context.
+ *
+ * Returns: TRUE if current thread is owner of @context.
+ **/
+gboolean
+g_main_context_is_owner (GMainContext *context)
+{
+ gboolean is_owner;
+
+ if (!context)
+ context = g_main_context_default ();
+
+#ifdef G_THREADS_ENABLED
+ LOCK_CONTEXT (context);
+ is_owner = context->owner == G_THREAD_SELF;
+ UNLOCK_CONTEXT (context);
+#else
+ is_owner = TRUE;
+#endif
+
+ return is_owner;
+}
+
/* Timeouts */
static void