gri3-wm/i3bar
Michael Stapelberg 0d8b6714e3 Move XCB event handling into xcb_prepare_cb.
Previously, we used ev_check watchers, which are executed at the beginning of an
event loop iteration.

This was problematic if one of the handlers happened to fill the XCB event
queue, e.g. by reading a reply from X11 and an event happened in the meantime.

In that situation, we would hand control to the event loop, entirely ignoring
the pending event. This would manifest itself as a 1-minute hang,
reproducible (sometimes) in the i3 testsuite.

issue #2790 describes an instance of this issue in i3bar, and we fixed that by
changing the watcher priority to run last. Handling events in xcb_prepare_cb has
the same effect, as ev_prepare watchers are run just before the event loop goes
to sleep.
2017-10-23 21:06:13 +02:00
..
include Synchronize with i3bar+i3, not just i3. 2017-09-30 13:04:20 +02:00
src Move XCB event handling into xcb_prepare_cb. 2017-10-23 21:06:13 +02:00
.gitignore
LICENSE Update i3bar LICENSE to conform to other LICENSE files. (#2284) 2016-04-10 04:15:49 -07:00