[pango] Xft: Fix a deadlock on display close
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pango] Xft: Fix a deadlock on display close
- Date: Tue, 13 Nov 2012 20:12:41 +0000 (UTC)
commit b520a7a6346492b9ad950981ba9d3d516302173b
Author: Matthias Clasen <mclasen redhat com>
Date: Tue Nov 13 15:12:01 2012 -0500
Xft: Fix a deadlock on display close
We can't call pango_xft_shutdown display while holding
the same lock it is taking.
https://bugzilla.gnome.org/show_bug.cgi?id=687470
pango/pangoxft-fontmap.c | 7 ++++---
1 files changed, 4 insertions(+), 3 deletions(-)
---
diff --git a/pango/pangoxft-fontmap.c b/pango/pangoxft-fontmap.c
index b8cdf30..9d210b5 100644
--- a/pango/pangoxft-fontmap.c
+++ b/pango/pangoxft-fontmap.c
@@ -143,8 +143,9 @@ close_display_cb (Display *display,
GSList *tmp_list;
G_LOCK (fontmaps);
+ tmp_list = g_slist_copy (fontmaps);
+ G_UNLOCK (fontmaps);
- tmp_list = fontmaps;
while (tmp_list)
{
PangoXftFontMap *xftfontmap = tmp_list->data;
@@ -154,9 +155,9 @@ close_display_cb (Display *display,
pango_xft_shutdown_display (display, xftfontmap->screen);
}
- registered_displays = g_slist_remove (registered_displays, display);
+ g_slist_free (tmp_list);
- G_UNLOCK (fontmaps);
+ registered_displays = g_slist_remove (registered_displays, display);
return 0;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]