Otherwise, removing transient service directories that are being
watched by the dbus-daemon can fail with EAGAIN.
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=99825
Reviewed-by: Philip Withnall <withnall@endlessm.com>
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
#endif
}
+static void
+pid_died (GPid pid,
+ gint status,
+ gpointer user_data)
+{
+ gboolean *result = user_data;
+
+ g_assert (result != NULL);
+ g_assert (!*result);
+ *result = TRUE;
+}
+
void
test_kill_pid (GPid pid)
{
+ gint died = FALSE;
+
+ g_child_watch_add (pid, pid_died, &died);
+
#ifdef DBUS_WIN
if (pid != NULL)
TerminateProcess (pid, 1);
if (pid > 0)
kill (pid, SIGTERM);
#endif
+
+ while (!died)
+ g_main_context_iteration (NULL, TRUE);
}
static gboolean