diff options
Diffstat (limited to 'matchbox/core/mb-wm-client.c')
-rw-r--r-- | matchbox/core/mb-wm-client.c | 8 |
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)) |