[glib] mainloop test: use atomic for cross-thread access
- From: Ryan Lortie <ryanl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib] mainloop test: use atomic for cross-thread access
- Date: Tue, 15 Jan 2013 20:46:31 +0000 (UTC)
commit 46b15bb58148d84b3681d1a728ca0e6e96d65122
Author: Ryan Lortie <desrt desrt ca>
Date: Tue Jan 15 15:40:09 2013 -0500
mainloop test: use atomic for cross-thread access
glib/tests/mainloop.c | 10 +++++-----
1 files changed, 5 insertions(+), 5 deletions(-)
---
diff --git a/glib/tests/mainloop.c b/glib/tests/mainloop.c
index e66216d..35995a2 100644
--- a/glib/tests/mainloop.c
+++ b/glib/tests/mainloop.c
@@ -762,14 +762,14 @@ test_mainloop_overflow (void)
g_main_context_unref (ctx);
}
-static volatile gboolean ready_time_dispatched;
+static volatile gint ready_time_dispatched;
static gboolean
ready_time_dispatch (GSource *source,
GSourceFunc callback,
gpointer user_data)
{
- ready_time_dispatched = TRUE;
+ g_atomic_int_set (&ready_time_dispatched, TRUE);
g_source_set_ready_time (source, -1);
@@ -862,13 +862,13 @@ test_ready_time (void)
g_source_set_ready_time (source, 0);
loop = g_main_loop_new (NULL, FALSE);
thread = g_thread_new ("context thread", run_context, loop);
- while (!ready_time_dispatched);
+ while (!g_atomic_int_get (&ready_time_dispatched));
/* Now let's see if it can wake up from sleeping. */
g_usleep (G_TIME_SPAN_SECOND / 2);
- ready_time_dispatched = FALSE;
+ g_atomic_int_set (&ready_time_dispatched, FALSE);
g_source_set_ready_time (source, 0);
- while (!ready_time_dispatched);
+ while (!g_atomic_int_get (&ready_time_dispatched));
/* kill the thread */
g_main_loop_quit (loop);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]