C interface to the X Window System protocol, which replaces the traditional Xlib interface.
Go to file
Jamey Sharp 4d828c5eba Don't abort() on locking assertions if LIBXCB_ALLOW_SLOPPY_LOCK is set.
But do still print a full backtrace, on platforms where that's
supported.

This commit follows the spirit of Novell's libxcb-sloppy-lock.diff.

I strongly opposed proposals like this one for a long time. Originally I
had a very good reason: libX11, when compiled to use XCB, would crash
soon after a locking correctness violation, so it was better to have an
informative assert failure than a mystifying crash soon after.

It took some time for me to realize that I'd changed the libX11
implementation (for unrelated reasons) so that it could survive most
invalid locking situations, as long as it wasn't actually being used
from multiple threads concurrently.

The other thing that has changed is that most of the code with incorrect
locking has now been fixed. The value of the assert is accordingly
lower.

However, remaining broken callers do need to be fixed. That's why libXCB
will still noisily print a stacktrace (if possible) on each assertion
failure, even when assert isn't actually invoked to abort() the program;
and that's why aborting is still default. This environment variable is
provided only for use as a temporary workaround for broken applications.

Signed-off-by: Jamey Sharp <jamey@minilop.net>
Acked-by: Josh Triplett <josh@freedesktop.org>
2007-10-23 11:44:20 -07:00
doc remove the 7th bit of the response_type for the event loops 2007-04-12 15:46:05 +02:00
src Don't abort() on locking assertions if LIBXCB_ALLOW_SLOPPY_LOCK is set. 2007-10-23 11:44:20 -07:00
tests Fix unit tests for FreeBSD 2006-11-26 09:27:37 -08:00
tools Match only XCB-namespaced XID generators when converting to xcb_generate_id. 2006-10-15 12:34:30 -07:00
.gitignore Integrate top-level .gitignore into .gitignore for each subdirectory 2006-09-24 03:19:54 -07:00
COPYING Fix the year in COPYING. 2006-04-27 17:32:20 -07:00
INSTALL Remove xcl and CVSROOT. 2006-02-18 16:49:41 -08:00
Makefile.am Add autogen.sh to EXTRA_DIST. 2006-12-10 21:10:06 -08:00
NEWS Release libxcb 1.0 2006-11-23 12:45:11 -08:00
README Release libxcb 1.0 2006-11-23 12:45:11 -08:00
acinclude.m4 If enable_build_docs is "no", we don't even try to look for doxygen. 2006-11-27 21:46:45 -08:00
autogen.sh Update autogen.sh to one that does objdir != srcdir 2007-04-11 17:31:31 +02:00
configure.ac Print backtraces in case an assert fails inside xlib/xcb. 2007-06-06 15:54:11 -07:00
xcb-composite.pc.in Lowercase library names to correspond with the new API. 2006-09-25 01:42:12 -07:00
xcb-damage.pc.in Lowercase library names to correspond with the new API. 2006-09-25 01:42:12 -07:00
xcb-dpms.pc.in Lowercase library names to correspond with the new API. 2006-09-25 01:42:12 -07:00
xcb-glx.pc.in Lowercase library names to correspond with the new API. 2006-09-25 01:42:12 -07:00
xcb-randr.pc.in Lowercase library names to correspond with the new API. 2006-09-25 01:42:12 -07:00
xcb-record.pc.in Lowercase library names to correspond with the new API. 2006-09-25 01:42:12 -07:00
xcb-render.pc.in Lowercase library names to correspond with the new API. 2006-09-25 01:42:12 -07:00
xcb-res.pc.in Lowercase library names to correspond with the new API. 2006-09-25 01:42:12 -07:00
xcb-screensaver.pc.in Lowercase library names to correspond with the new API. 2006-09-25 01:42:12 -07:00
xcb-shape.pc.in Lowercase library names to correspond with the new API. 2006-09-25 01:42:12 -07:00
xcb-shm.pc.in Lowercase library names to correspond with the new API. 2006-09-25 01:42:12 -07:00
xcb-sync.pc.in Lowercase library names to correspond with the new API. 2006-09-25 01:42:12 -07:00
xcb-xevie.pc.in Lowercase library names to correspond with the new API. 2006-09-25 01:42:12 -07:00
xcb-xf86dri.pc.in Lowercase library names to correspond with the new API. 2006-09-25 01:42:12 -07:00
xcb-xfixes.pc.in Lowercase library names to correspond with the new API. 2006-09-25 01:42:12 -07:00
xcb-xinerama.pc.in Use substitition variables in xcb-xinerama.pc.in, not instances of their values 2006-11-25 22:27:33 -08:00
xcb-xlib.pc.in Split the Xlib compatibility functions into a separate library libxcb-xlib 2006-09-25 02:57:19 -07:00
xcb-xprint.pc.in Lowercase library names to correspond with the new API. 2006-09-25 01:42:12 -07:00
xcb-xtest.pc.in Lowercase library names to correspond with the new API. 2006-09-25 01:42:12 -07:00
xcb-xv.pc.in Lowercase library names to correspond with the new API. 2006-09-25 01:42:12 -07:00
xcb-xvmc.pc.in Lowercase library names to correspond with the new API. 2006-09-25 01:42:12 -07:00
xcb.pc.in Use pthread-stubs as needed, and list xdmcp in Requires.private when XCB is built to use it. 2006-11-22 20:29:04 -08:00

About libxcb
============

libxcb provides an interface to the X Window System protocol, which replaces
the current Xlib interface. It has several advantages over Xlib, including:
- size: small library and lower memory footprint
- latency hiding: batch several requests and wait for the replies later
- direct protocol access: one-to-one mapping between interface and protocol
- proven thread support: transparently access XCB from multiple threads
- easy extension implementation: interfaces auto-generated from XML-XCB

Xlib can also use XCB as a transport layer, allowing software to make
requests and receive responses with both, which eases porting to XCB.
However, client programs, libraries, and toolkits will gain the most
benefit from a native XCB port.


Please report any issues you find to the freedesktop.org bug tracker,
at:

	<https://bugs.freedesktop.org/enter_bug.cgi?product=XCB>

Discussion about XCB occurs on the XCB mailing list:

        <mailto:xcb at lists.freedesktop.org>
        <http://lists.freedesktop.org/mailman/listinfo/xcb>

You can obtain the latest development versions of XCB using GIT.
For anonymous checkouts, use:

        git clone git://anongit.freedesktop.org/git/xcb/libxcb

For developers, use:

        git clone git+ssh://git.freedesktop.org/git/xcb/libxcb