Philip Withnall
d73f8eec48
gmain: Make GSourceCallback thread-safe
...
Otherwise there is a race in finalising the GSourceCallback if one
thread is finishing off a g_main_dispatch() while another thread is
destroying the GSource which owns the GSourceCallback.
A helgrind log:
==21707== Possible data race during write of size 4 at 0x54EACB0 by
thread #12
==21707== Locks held: none
==21707== at 0x4ECC174: g_source_callback_unref (gmain.c:1528)
==21707== by 0x4ECD953: g_main_dispatch (gmain.c:3081)
==21707== by 0x4ECE667: g_main_context_dispatch (gmain.c:3673)
==21707== by 0x4ECE859: g_main_context_iterate (gmain.c:3744)
==21707== by 0x4ECEC7F: g_main_loop_run (gmain.c:3938)
==21707== by 0x41C197: some_thread (some-code.c:224)
==21707==
==21707== This conflicts with a previous write of size 4 by thread #5
==21707== Locks held: 1, at address 0x54CF320
==21707== at 0x4ECC174: g_source_callback_unref (gmain.c:1528)
==21707== by 0x4ECB86F: g_source_destroy_internal (gmain.c:1178)
==21707== by 0x4ECB9D4: g_source_destroy (gmain.c:1227)
==21707== by 0x41CF09: some_other_thread (some-other-code.c:410)
https://bugzilla.gnome.org/show_bug.cgi?id=737677
2017-11-28 14:08:58 +00:00
..
2017-05-24 11:58:19 +02:00
2017-01-04 19:12:57 +01:00
2017-11-24 12:41:53 +05:30
2017-11-22 04:43:05 +05:30
2017-10-06 12:49:12 +01:00
2017-11-21 12:43:17 +00:00
2017-07-10 11:22:40 +01:00
2017-07-10 11:22:40 +01:00
2017-11-07 14:51:12 +00:00
2017-05-24 11:58:19 +02:00
2017-11-16 11:12:32 +00:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-11-16 10:36:13 +00:00
2017-09-11 20:44:39 +01:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-09-11 21:01:15 +01:00
2017-05-24 11:58:19 +02:00
2013-11-20 09:16:16 -05:00
2017-11-12 16:36:16 +01:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2015-11-12 15:01:54 +08:00
2017-11-12 16:36:16 +01:00
2017-09-11 20:47:11 +01:00
2017-11-16 11:12:32 +00:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-10-11 12:13:20 +01:00
2017-10-11 12:13:20 +01:00
2017-11-16 11:07:20 +00:00
2017-09-11 19:29:34 +01:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2016-09-21 18:30:52 +02:00
2017-10-26 18:51:51 +02:00
2017-05-24 11:58:19 +02:00
2017-08-03 10:21:13 +01:00
2017-05-24 11:58:19 +02:00
2017-11-07 08:25:28 -08:00
2017-11-07 08:25:28 -08:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-11-12 16:36:16 +01:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-10-06 12:49:12 +01:00
2017-05-24 11:58:19 +02:00
2017-09-08 15:40:15 +01:00
2017-10-05 14:49:49 +01:00
2017-11-12 16:36:16 +01:00
2017-05-24 11:58:19 +02:00
2016-05-23 10:52:10 -04:00
2016-09-23 22:46:30 -07:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-11-01 12:46:38 +00:00
2017-11-01 12:46:38 +00:00
2017-11-07 14:51:12 +00:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2011-06-07 08:55:31 +08:00
2016-11-23 10:50:39 +00:00
2017-09-14 10:23:34 +08:00
2017-09-15 12:50:50 +08:00
2013-01-13 13:11:57 -05:00
2017-11-16 11:12:32 +00:00
2017-05-24 11:58:19 +02:00
2017-11-27 02:07:27 -08:00
2017-05-24 11:58:19 +02:00
2017-11-28 14:08:58 +00:00
2017-11-12 16:36:16 +01:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-10-03 09:36:08 +01:00
2017-05-24 11:58:19 +02:00
2017-11-10 10:27:26 +00:00
2017-11-10 10:27:26 +00:00
2008-04-08 02:59:05 +00:00
2017-11-16 11:12:32 +00:00
2017-05-24 11:58:19 +02:00
2017-11-07 14:51:12 +00:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-11-07 14:51:12 +00:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-10-05 15:02:39 +01:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-11-16 11:12:32 +00:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-10-05 15:07:09 +01:00
2017-10-06 12:49:12 +01:00
2017-10-26 12:27:17 +01:00
2017-05-24 11:58:19 +02:00
2017-07-05 17:53:07 +02:00
2017-11-16 11:12:32 +00:00
2017-05-24 11:58:19 +02:00
2017-10-26 18:51:51 +02:00
2017-05-24 11:58:19 +02:00
2017-11-12 16:36:16 +01:00
2017-05-24 11:58:19 +02:00
2017-11-16 11:12:32 +00:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-07-12 23:36:18 +02:00
2017-11-07 14:51:12 +00:00
2017-09-11 21:07:08 +01:00
2017-11-12 16:36:16 +01:00
2017-09-12 12:12:27 +01:00
2017-11-01 12:46:38 +00:00
2017-11-13 10:37:11 +00:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-10-26 12:27:17 +01:00
2017-05-24 11:58:19 +02:00
2017-10-11 10:42:20 +01:00
2017-08-03 10:21:13 +01:00
2017-11-12 16:36:16 +01:00
2017-10-02 15:32:46 +01:00
2017-11-12 16:36:16 +01:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2014-02-20 18:27:24 -05:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-10-02 15:31:20 +01:00
2017-05-24 11:58:19 +02:00
2017-07-05 17:53:07 +02:00
2017-07-05 17:53:07 +02:00
2017-11-07 14:51:12 +00:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2014-06-28 12:49:38 -04:00
2017-05-24 11:58:19 +02:00
2017-07-05 17:53:07 +02:00
2017-07-05 17:53:07 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-10-25 10:33:48 +01:00
2017-11-06 10:31:52 +00:00
2017-11-02 13:39:19 +00:00
2017-02-06 14:40:38 +01:00
2017-02-06 14:40:38 +01:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-11-08 12:36:26 +00:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-10-06 12:49:12 +01:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-09-11 19:24:06 +01:00
2017-05-24 11:58:19 +02:00
2017-05-24 11:58:19 +02:00
2017-07-13 01:49:38 +00:00
2017-07-12 22:36:30 +02:00
2016-05-23 10:52:10 -04:00
2017-11-03 20:11:56 +00:00
2017-11-22 14:11:11 +05:30
2014-02-20 18:27:24 -05:00
2014-12-12 11:01:37 -05:00
2016-08-13 10:31:26 +02:00