Fix a multi-thread deadlock
authorUli Schlachter <psychon@znc.in>
Mon, 24 Sep 2012 20:07:51 +0000 (22:07 +0200)
committerUli Schlachter <psychon@znc.in>
Sun, 30 Sep 2012 08:10:18 +0000 (10:10 +0200)
commit23911a707b8845bff52cd7853fc5d59fb0823cef
treef5a09a62d8a8d5491df9069f6a709896c98d673f
parentc16cc5467eb0af7c5cdee16e6efaee54eb53bba6
Fix a multi-thread deadlock

This fixes a deadlock which was seen in-the-wild with wine.

It could happen that two threads tried to read from the socket at the same time
and one of the thread got stuck inside of poll()/select().

The fix works by making sure that the writing thread doesn't steal the reading
thread's reply.

Debugged-by: Erich Hoover <ehoover@mines.edu>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=54671
Signed-off-by: Uli Schlachter <psychon@znc.in>
src/xcb_conn.c