Bug 578295 - gtester has a race condition
authorRyan Lortie <desrt@desrt.ca>
Sat, 7 Aug 2010 23:58:12 +0000 (19:58 -0400)
committerRyan Lortie <desrt@desrt.ca>
Sat, 7 Aug 2010 23:59:36 +0000 (19:59 -0400)
Deal with the race in GMainLoop by installing a do-nothing timeout.

glib/gtester.c

index ca023f7..12e576c 100644 (file)
@@ -620,12 +620,21 @@ parse_args (gint    *argc_p,
   *argc_p = e;
 }
 
+static gboolean
+do_nothing (gpointer data)
+{
+  return TRUE;
+}
+
 int
 main (int    argc,
       char **argv)
 {
   guint ui;
 
+  /* See #578295 */
+  g_timeout_add_seconds (5, do_nothing, NULL);
+
   /* some unices need SA_RESTART for SIGCHLD to return -EAGAIN for io.
    * we must fiddle with sigaction() *before* glib is used, otherwise
    * we could revoke signal hanmdler setups from glib initialization code.