Find a file
Jamey Sharp fd85aca7a6 Ignore user locks after sleeping in _XReply and _XReadEvents.
This bug appears as a hang in applications that wait for replies from
multiple threads, where one such thread has taken a user lock using
XLockDisplay.

Prior to this fix, the code could deadlock in this way: If thread 1 goes
to sleep waiting for a reply, and then thread 2 takes a user lock and
waits for a reply, then thread 2 will wait for thread 1 to process its
reply (because responses must be processed in order), but thread 1 will
wait for thread 2 to drop its user lock.

Fixed by making thread 1 not wait for thread 2 to drop its user lock.
This makes the semantics of user locks hard to define, but they were
already hard to define. The new behavior appears to be consistent with
the way Xlib worked historically, anyway.

Fixes: http://lists.freedesktop.org/archives/xcb/2011-March/006802.html

There was a similar potential for deadlock in _XReadEvents, fixed the
same way, with the same caveats about user-lock semantics.

Signed-off-by: Jamey Sharp <jamey@minilop.net>
2011-03-14 14:45:35 -07:00
include Revert "Mark atom names argument to XInternAtoms as const" 2010-12-21 18:51:17 -08:00
m4 Revert “Dolt-ify" 2010-09-13 05:27:41 -04:00
man Revert "Mark atom names argument to XInternAtoms as const" 2010-12-21 18:51:17 -08:00
modules im/ximcp: release modifiermap before returning 2011-03-11 12:38:08 +02:00
nls Remove <literal> tags from compose-chart.pl so pdf building doesn't die on soft-hyphens. 2011-01-28 15:32:02 -08:00
specs Docbook: change the book id to match the xml file basename 2011-02-25 09:23:54 -05:00
src Ignore user locks after sleeping in _XReply and _XReadEvents. 2011-03-14 14:45:35 -07:00
.gitignore .gitignore: use common defaults with custom section # 24239 2009-11-14 09:26:16 -05:00
AUTHORS Fix documentation typo 2008-09-08 16:42:48 -04:00
autogen.sh - For now put xtrans in X11/Xtrans/X11, since libX11 is looking for it in <X11/...> 2005-05-13 22:53:36 +00:00
configure.ac config: comment, minor upgrade, quote and layout configure.ac 2011-02-01 13:56:40 -05:00
COPYING Bug 19379 - Provide docs with overview of all compose key combinations 2010-09-21 18:22:21 -07:00
cpprules.in docs: Remove directory prerequisites from make rules 2010-10-10 09:43:55 -07:00
Makefile.am Revert “Dolt-ify" 2010-09-13 05:27:41 -04:00
NEWS Move security fixes to the top of NEWS, and fix spacing. 2007-06-03 21:41:47 -07:00
README Add README with pointers to mailing list, bugzilla & git repos 2009-02-02 20:34:31 -08:00
x11-xcb.pc.in Split public Xlib/XCB functions into libX11-xcb 2006-10-05 17:44:22 -07:00
x11.pc.in Bug 15664: xau & xdmcp not needed in x11.pc dependencies when built with xcb 2009-03-12 17:11:42 -07:00

libX11 - Core X11 protocol client library

Documentation for this library can be found in the included man pages,
the xlib spec from the doc/xorg-docs module, also available at:

	http://xorg.freedesktop.org/releases/X11R7.0/doc/PDF/xlib.pdf

and the O'Reilly Xlib books, which they have made freely available online,
though only for older versions of X11:

 - X Series Volume 2: Xlib Reference Manual (1989, covers X11R3)
	http://www.archive.org/details/xlibretmanver1102nyemiss

 - X Series Volume 2: Xlib Reference Manual, 2nd Edition (1990, covers X11R4)
	http://www.archive.org/details/xlibrefmanv115ed02nyemiss

All questions regarding this software should be directed at the
Xorg mailing list:

        http://lists.freedesktop.org/mailman/listinfo/xorg

Please submit bug reports to the Xorg bugzilla:

        https://bugs.freedesktop.org/enter_bug.cgi?product=xorg

The master development code repository can be found at:

        git://anongit.freedesktop.org/git/xorg/lib/libX11

        http://cgit.freedesktop.org/xorg/lib/libX11

For patch submission instructions, see:

	http://www.x.org/wiki/Development/Documentation/SubmittingPatches

For more information on the git code manager, see:

        http://wiki.x.org/wiki/GitPage