Remove the last goto in XCB: XCBWaitForReply now permits multiple threads to force the same cookie.
This commit is contained in:
parent
d5347485a5
commit
f090da98f3
|
@ -312,9 +312,7 @@ void *XCBWaitForReply(XCBConnection *c, unsigned int request, XCBGenericError **
|
||||||
reader_list **prev_reader;
|
reader_list **prev_reader;
|
||||||
|
|
||||||
for(prev_reader = &c->in.readers; *prev_reader && (*prev_reader)->request <= request; prev_reader = &(*prev_reader)->next)
|
for(prev_reader = &c->in.readers; *prev_reader && (*prev_reader)->request <= request; prev_reader = &(*prev_reader)->next)
|
||||||
if((*prev_reader)->request == request)
|
/* empty */;
|
||||||
goto done; /* error */
|
|
||||||
|
|
||||||
reader.request = request;
|
reader.request = request;
|
||||||
reader.data = &cond;
|
reader.data = &cond;
|
||||||
reader.next = *prev_reader;
|
reader.next = *prev_reader;
|
||||||
|
@ -324,7 +322,6 @@ void *XCBWaitForReply(XCBConnection *c, unsigned int request, XCBGenericError **
|
||||||
if(!_xcb_conn_wait(c, &cond, 0, 0))
|
if(!_xcb_conn_wait(c, &cond, 0, 0))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
done:
|
|
||||||
for(prev_reader = &c->in.readers; *prev_reader && (*prev_reader)->request <= request; prev_reader = &(*prev_reader)->next)
|
for(prev_reader = &c->in.readers; *prev_reader && (*prev_reader)->request <= request; prev_reader = &(*prev_reader)->next)
|
||||||
if(*prev_reader == &reader)
|
if(*prev_reader == &reader)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue