diff options
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.patch | 30 |
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); + } |