aboutsummaryrefslogtreecommitdiffstats
path: root/matchbox/core/mb-wm-client.c
diff options
context:
space:
mode:
Diffstat (limited to 'matchbox/core/mb-wm-client.c')
-rw-r--r--matchbox/core/mb-wm-client.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/matchbox/core/mb-wm-client.c b/matchbox/core/mb-wm-client.c
index 0791060..f88a8d8 100644
--- a/matchbox/core/mb-wm-client.c
+++ b/matchbox/core/mb-wm-client.c
@@ -55,9 +55,11 @@ mb_wm_client_destroy (MBWMObject *obj)
client->sig_prop_change_id = 0;
- if (client->ping_cb_id)
- mb_wm_main_context_timeout_handler_remove (wm->main_ctx,
- client->ping_cb_id);
+ /* Must call mb_wm_client_ping_stop rather than
+ * mb_wm_main_context_timeout_handler_remove() to prevent a race condition
+ * segfault in the timeout list manipulation
+ */
+ mb_wm_client_ping_stop (client);
#if ENABLE_COMPOSITE
if (mb_wm_compositing_enabled (wm))