Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 176839 | Differences between
and this patch

Collapse All | Expand All

(-)src/xcb_conn.c.orig (+5 lines)
Lines 62-67 Link Here
62
static int _xcb_xlib_init(_xcb_xlib *xlib)
62
static int _xcb_xlib_init(_xcb_xlib *xlib)
63
{
63
{
64
    xlib->lock = 0;
64
    xlib->lock = 0;
65
    xlib->sloppy_lock = 0;
66
67
    if (getenv("LIBXCB_ALLOW_SLOPPY_LOCK"))
68
        xlib->sloppy_lock = 1;
69
65
    pthread_cond_init(&xlib->cond, 0);
70
    pthread_cond_init(&xlib->cond, 0);
66
    return 1;
71
    return 1;
67
}
72
}
(-)src/xcbint.h.orig (+1 lines)
Lines 130-135 Link Here
130
130
131
typedef struct _xcb_xlib {
131
typedef struct _xcb_xlib {
132
    int lock;
132
    int lock;
133
    int sloppy_lock;
133
    pthread_t thread;
134
    pthread_t thread;
134
    pthread_cond_t cond;
135
    pthread_cond_t cond;
135
} _xcb_xlib;
136
} _xcb_xlib;
(-)src/xcb_xlib.c.orig (-2 / +4 lines)
Lines 40-46 Link Here
40
void xcb_xlib_lock(xcb_connection_t *c)
40
void xcb_xlib_lock(xcb_connection_t *c)
41
{
41
{
42
    _xcb_lock_io(c);
42
    _xcb_lock_io(c);
43
    assert(!c->xlib.lock);
43
    if (!c->xlib.sloppy_lock)
44
	    assert(!c->xlib.lock);
44
    c->xlib.lock = 1;
45
    c->xlib.lock = 1;
45
    c->xlib.thread = pthread_self();
46
    c->xlib.thread = pthread_self();
46
    _xcb_unlock_io(c);
47
    _xcb_unlock_io(c);
Lines 49-55 Link Here
49
void xcb_xlib_unlock(xcb_connection_t *c)
50
void xcb_xlib_unlock(xcb_connection_t *c)
50
{
51
{
51
    _xcb_lock_io(c);
52
    _xcb_lock_io(c);
52
    assert(c->xlib.lock);
53
    if (!c->xlib.sloppy_lock)
54
	assert(c->xlib.lock);
53
    assert(pthread_equal(c->xlib.thread, pthread_self()));
55
    assert(pthread_equal(c->xlib.thread, pthread_self()));
54
    c->xlib.lock = 0;
56
    c->xlib.lock = 0;
55
    pthread_cond_broadcast(&c->xlib.cond);
57
    pthread_cond_broadcast(&c->xlib.cond);

Return to bug 176839