mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-02-24 03:02:10 +01:00
tests: Use g_idle_add to call g_main_loop_quit
Sometimes file monitor events may be slow to emit. Using g_idle_add makes it less possible for events to be scheduled later than the main loop quit, preventing test failure caused by missing events. This fixes test failure on FreeBSD.
This commit is contained in:
parent
41259ac173
commit
f288898485
@ -84,6 +84,19 @@ delete_file_idle (gpointer data)
|
||||
return G_SOURCE_REMOVE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
stop_loop_idle (gpointer data)
|
||||
{
|
||||
MonitorData *d = data;
|
||||
|
||||
g_assert (d->state == 6);
|
||||
|
||||
if (d->loop)
|
||||
g_main_loop_quit (d->loop);
|
||||
|
||||
return G_SOURCE_REMOVE;
|
||||
}
|
||||
|
||||
static void
|
||||
changed_cb (GFileMonitor *monitor,
|
||||
GFile *file,
|
||||
@ -112,8 +125,7 @@ changed_cb (GFileMonitor *monitor,
|
||||
case 5:
|
||||
g_assert (event == G_FILE_MONITOR_EVENT_DELETED);
|
||||
d->state = 6;
|
||||
if (d->loop)
|
||||
g_main_loop_quit (d->loop);
|
||||
g_idle_add (stop_loop_idle, data);
|
||||
break;
|
||||
default:
|
||||
g_assert_not_reached ();
|
||||
|
Loading…
x
Reference in New Issue
Block a user