After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 730030 - cairo: enable multithreading for cairo-xlib
cairo: enable multithreading for cairo-xlib
Status: RESOLVED FIXED
Product: gjs
Classification: Bindings
Component: general
unspecified
Other All
: Normal normal
: ---
Assigned To: gjs-maint
gjs-maint
Depends on:
Blocks:
 
 
Reported: 2014-05-12 21:10 UTC by Giovanni Campagna
Modified: 2014-06-25 18:49 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
cairo: enable multithreading for cairo-xlib (2.45 KB, patch)
2014-05-12 21:10 UTC, Giovanni Campagna
committed Details | Review

Description Giovanni Campagna 2014-05-12 21:10:19 UTC
This fixes certain deadlocks in polari, caused by xlib getting
confused with background finalization and waiting on the wrong
request.
Comment 1 Giovanni Campagna 2014-05-12 21:10:23 UTC
Created attachment 276405 [details] [review]
cairo: enable multithreading for cairo-xlib

We want to be able to free cairo objects from the background thread,
and that means we must be able to make xlib calls from multiple
threads. Which is ok, if we initialize xlib beforehand.

We don't have a good place to initialize gjs, where we're sure to
be called before the first XOpenDisplay(), so just stuff it into
a constructor.
Comment 2 Jasper St. Pierre (not reading bugmail) 2014-05-12 21:17:27 UTC
See also: http://lists.x.org/archives/xorg-devel/2013-July/036881.html
Comment 3 Giovanni Campagna 2014-06-15 15:01:59 UTC
(In reply to comment #2)
> See also: http://lists.x.org/archives/xorg-devel/2013-July/036881.html

Well, yes, but that hasn't happened yet. So? Is this ok to go in?
Comment 4 Giovanni Campagna 2014-06-25 18:49:52 UTC
Attachment 276405 [details] pushed as 3f09daa - cairo: enable multithreading for cairo-xlib