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_xlib.c.orig (-7 / +9 lines)
Lines 38-55 Link Here
38
void xcb_xlib_lock(xcb_connection_t *c)
38
void xcb_xlib_lock(xcb_connection_t *c)
39
{
39
{
40
    _xcb_lock_io(c);
40
    _xcb_lock_io(c);
41
    assert(!c->xlib.lock);
41
    if (!c->xlib.lock) {
42
    c->xlib.lock = 1;
42
        c->xlib.lock = 1;
43
    c->xlib.thread = pthread_self();
43
        c->xlib.thread = pthread_self();
44
    }
44
    _xcb_unlock_io(c);
45
    _xcb_unlock_io(c);
45
}
46
}
46
47
47
void xcb_xlib_unlock(xcb_connection_t *c)
48
void xcb_xlib_unlock(xcb_connection_t *c)
48
{
49
{
49
    _xcb_lock_io(c);
50
    _xcb_lock_io(c);
50
    assert(c->xlib.lock);
51
    if (c->xlib.lock) {
51
    assert(pthread_equal(c->xlib.thread, pthread_self()));
52
        assert(pthread_equal(c->xlib.thread, pthread_self()));
52
    c->xlib.lock = 0;
53
        c->xlib.lock = 0;
53
    pthread_cond_broadcast(&c->xlib.cond);
54
        pthread_cond_broadcast(&c->xlib.cond);
55
    }
54
    _xcb_unlock_io(c);
56
    _xcb_unlock_io(c);
55
}
57
}

Return to bug 176839