g_main_context_wait: add a critical to detect use
authorRyan Lortie <desrt@desrt.ca>
Fri, 21 Feb 2014 21:25:09 +0000 (16:25 -0500)
committerRyan Lortie <desrt@desrt.ca>
Fri, 21 Feb 2014 21:42:21 +0000 (16:42 -0500)
Due to its unusual interface, I suspect that nobody is using
g_main_context_wait() but there is no way to know.

Add a critical notice that will be displayed if anyone calls the
function, asking them to file a bug with us.

We'll let this go out with the 2.40 release and see if we get a response
before we proceed with actually breaking the functionality.

glib/gmain.c

index dbbc63d..bce602d 100644 (file)
@@ -3229,6 +3229,18 @@ g_main_context_wait (GMainContext *context,
   if (context == NULL)
     context = g_main_context_default ();
 
+  if G_UNLIKELY (cond != &context->cond || mutex != &context->mutex)
+    {
+      static gboolean warned;
+
+      if (!warned)
+        {
+          g_critical ("WARNING!! g_main_context_wait() will be removed in a future release.  "
+                      "If you see this message, please file a bug immediately.");
+          warned = TRUE;
+        }
+    }
+
   loop_internal_waiter = (mutex == &context->mutex);
   
   if (!loop_internal_waiter)