summary refs log tree commit diff
path: root/pkgs/servers/x11/xorg/xcb_xlib-no-assert-on-lock.patch
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/servers/x11/xorg/xcb_xlib-no-assert-on-lock.patch')
-rw-r--r--pkgs/servers/x11/xorg/xcb_xlib-no-assert-on-lock.patch30
1 files changed, 30 insertions, 0 deletions
diff --git a/pkgs/servers/x11/xorg/xcb_xlib-no-assert-on-lock.patch b/pkgs/servers/x11/xorg/xcb_xlib-no-assert-on-lock.patch
new file mode 100644
index 000000000000..bca4981dfd39
--- /dev/null
+++ b/pkgs/servers/x11/xorg/xcb_xlib-no-assert-on-lock.patch
@@ -0,0 +1,30 @@
+--- foo/src/xcb_xlib.c.orig	2006-11-25 22:03:30.000000000 +0000
++++ foo/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);
+ }