i3bar: Bugfix: Check if the X11 connection is unavailable
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
This commit is contained in:
parent
11ab7cf32a
commit
7064cfc2a0
|
@ -406,6 +406,12 @@ void xcb_prep_cb(struct ev_loop *loop, ev_prepare *watcher, int revents) {
|
||||||
*/
|
*/
|
||||||
void xcb_chk_cb(struct ev_loop *loop, ev_check *watcher, int revents) {
|
void xcb_chk_cb(struct ev_loop *loop, ev_check *watcher, int revents) {
|
||||||
xcb_generic_event_t *event;
|
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) {
|
while ((event = xcb_poll_for_event(xcb_connection)) == NULL) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue