Bugfix: move request_written update *before* _xcb_conn_wait in _xcb_out_flush. Otherwise a reply may be read before we record that we have sent the request, and then XCB gets... confused.
This commit is contained in:
parent
e0a3578383
commit
f8a8b465e0
|
@ -269,9 +269,9 @@ int _xcb_out_write_block(XCBConnection *c, struct iovec *vector, size_t count)
|
|||
int _xcb_out_flush(XCBConnection *c)
|
||||
{
|
||||
int ret = 1;
|
||||
c->out.request_written = c->out.request;
|
||||
while(ret > 0 && (c->out.queue_len || c->out.vec_len))
|
||||
ret = _xcb_conn_wait(c, /*should_write*/ 1, &c->out.cond);
|
||||
c->out.request_written = c->out.request;
|
||||
pthread_cond_broadcast(&c->out.cond);
|
||||
return ret;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue