Fix possible deadlock during startup
For setting up the wallpaper, awesome needs a second connection to the X11 server (isn't SetCloseDownMode just great?). However, it was possible to have a dead-lock with our main connection due to this. Awesome does a GrabServer during startup so that nothing else can use the X11 server while we set ourselves up. The server is ungrabbed right before the lua config is read. However, nothing makes sure that this ungrab request really is sent to the server instead of just waiting in xcb's output buffer. The dead-lock would now happen if we try to establish a second connection to the X11 server before the ungrab request was flushed on the main connection. The server will wait for the ungrab on the first connection, awesome is waiting for the second connection to be successfully established. Fix this by making sure the UngrabServer request is flushed before parsing the config file. Signed-off-by: Uli Schlachter <psychon@znc.in>
This commit is contained in:
parent
8792d6a4ba
commit
9b78733922
|
@ -516,6 +516,7 @@ main(int argc, char **argv)
|
||||||
|
|
||||||
/* we will receive events, stop grabbing server */
|
/* we will receive events, stop grabbing server */
|
||||||
xcb_ungrab_server(globalconf.connection);
|
xcb_ungrab_server(globalconf.connection);
|
||||||
|
xcb_flush(globalconf.connection);
|
||||||
|
|
||||||
/* Parse and run configuration file */
|
/* Parse and run configuration file */
|
||||||
if (!luaA_parserc(&xdg, confpath, true))
|
if (!luaA_parserc(&xdg, confpath, true))
|
||||||
|
|
Loading…
Reference in New Issue