Receive reserveSpace before calling startWork()

Otherwise we can get a SIGPOLL.  Reported by Ludovic.
This commit is contained in:
Eelco Dolstra 2012-08-22 10:58:24 -04:00
parent d950cfe70b
commit 4aa1e5c554
1 changed files with 4 additions and 4 deletions

View File

@ -619,6 +619,10 @@ static void processConnection()
to.flush();
unsigned int clientVersion = readInt(from);
bool reserveSpace = true;
if (GET_PROTOCOL_MINOR(clientVersion) >= 11)
reserveSpace = readInt(from) != 0;
/* Send startup error messages to the client. */
startWork();
@ -634,10 +638,6 @@ static void processConnection()
throw Error("if you run `nix-worker' as root, then you MUST set `build-users-group'!");
#endif
bool reserveSpace = true;
if (GET_PROTOCOL_MINOR(clientVersion) >= 11)
reserveSpace = readInt(from) != 0;
/* Open the store. */
store = boost::shared_ptr<StoreAPI>(new LocalStore(reserveSpace));