On 02/22/2011 11:14 AM, Julien Cristau wrote:
On Sat, Jan 29, 2011 at 09:54:37 -0800, Jeremy Huddleston wrote:
2) emacs' error handler seems bugged. Is it legal to call XSync() within the
error handler? It certainly seems like it shouldn't. Did we used to actually
support this with the xtrans version of libX11?
Not as far as I can tell. From XSetErrorHandler(3):
Because this condition is not assumed to be fatal, it is acceptable for
your error handler to return; the returned value is ignored. However,
the error handler should not call any functions (directly or indi‐
rectly) on the display that will generate protocol requests or that
will look for input events.
That's not a new requirement.
I've been running Xlib with thread-safety checks
(http://lists.x.org/archives/xorg-devel/2011-February/018979.html) and
have found some problems even in single threaded clients. For example,
one client was doing X requests from a signal handler, which is not
allowed. Today I found out that even Mozilla code is suffering from this
problem
(http://mxr.mozilla.org/mozilla-central/source/toolkit/xre/nsX11ErrorHandler.cpp).
Adding Karl into CC. It looks like nsX11ErrorHandler.cpp is also calling
Xlib functions resulting in protocol requests, which is not allowed.
-- Rami
_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel