summaryrefslogtreecommitdiffstats
path: root/abs/core/libxcb/xcb_xlib-no-assert-on-lock.patch
diff options
context:
space:
mode:
Diffstat (limited to 'abs/core/libxcb/xcb_xlib-no-assert-on-lock.patch')
-rw-r--r--abs/core/libxcb/xcb_xlib-no-assert-on-lock.patch30
1 files changed, 30 insertions, 0 deletions
diff --git a/abs/core/libxcb/xcb_xlib-no-assert-on-lock.patch b/abs/core/libxcb/xcb_xlib-no-assert-on-lock.patch
new file mode 100644
index 0000000..a29361b
--- /dev/null
+++ b/abs/core/libxcb/xcb_xlib-no-assert-on-lock.patch
@@ -0,0 +1,30 @@
+--- src/xcb_xlib.c.orig 2006-11-25 22:03:30.000000000 +0000
++++ src/xcb_xlib.c 2006-11-25 22:19:28.000000000 +0000
+@@ -38,18 +38,20 @@
+ void xcb_xlib_lock(xcb_connection_t *c)
+ {
+ _xcb_lock_io(c);
+- assert(!c->xlib.lock);
+- c->xlib.lock = 1;
+- c->xlib.thread = pthread_self();
++ if (!c->xlib.lock) {
++ c->xlib.lock = 1;
++ c->xlib.thread = pthread_self();
++ }
+ _xcb_unlock_io(c);
+ }
+
+ void xcb_xlib_unlock(xcb_connection_t *c)
+ {
+ _xcb_lock_io(c);
+- assert(c->xlib.lock);
+- assert(pthread_equal(c->xlib.thread, pthread_self()));
+- c->xlib.lock = 0;
+- pthread_cond_broadcast(&c->xlib.cond);
++ if (c->xlib.lock) {
++ assert(pthread_equal(c->xlib.thread, pthread_self()));
++ c->xlib.lock = 0;
++ pthread_cond_broadcast(&c->xlib.cond);
++ }
+ _xcb_unlock_io(c);
+ }