This fixes the condition where the i3 socket for some reason did not produce an
error, but the X server exited (earlier than i3?) and the left-over i3bar
process would consume 100% CPU.
How to reproduce the problem:
1) Start ./testcases/Xdummy :8
2) Start DISPLAY=:8 i3bar -s <socket path to i3 on :0>
3) Kill the Xdummy
*/
void xcb_chk_cb(struct ev_loop *loop, ev_check *watcher, int revents) {
xcb_generic_event_t *event;
+
+ if (xcb_connection_has_error(xcb_connection)) {
+ ELOG("X11 connection was closed unexpectedly - maybe your X server terminated / crashed?\n");
+ exit(1);
+ }
+
while ((event = xcb_poll_for_event(xcb_connection)) == NULL) {
return;
}