* Make sure that lock files are cleaned up properly when building

through the build hook.
This commit is contained in:
Eelco Dolstra 2011-12-25 16:38:37 +00:00
parent 524fa8a4f1
commit 8c42a8c8ff

View file

@ -1300,6 +1300,13 @@ void DerivationGoal::buildDone()
being valid. */ being valid. */
computeClosure(); computeClosure();
/* It is now safe to delete the lock files, since all future
lockers will see that the output paths are valid; they will
not create new lock files with the same names as the old
(unlinked) lock files. */
outputLocks.setDeletion(true);
outputLocks.unlock();
} catch (BuildError & e) { } catch (BuildError & e) {
printMsg(lvlError, e.msg()); printMsg(lvlError, e.msg());
outputLocks.unlock(); outputLocks.unlock();
@ -1987,13 +1994,6 @@ void DerivationGoal::computeClosure()
infos.push_back(info); infos.push_back(info);
} }
worker.store.registerValidPaths(infos); worker.store.registerValidPaths(infos);
/* It is now safe to delete the lock files, since all future
lockers will see that the output paths are valid; they will not
create new lock files with the same names as the old (unlinked)
lock files. */
outputLocks.setDeletion(true);
outputLocks.unlock();
} }