diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2003-12-21 17:09:16 +0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2003-12-21 17:09:16 +0000 |
commit | 528f1d1867de8b653eed516f8448096d7d138978 (patch) | |
tree | 42fecc7d6ee2a2188761968b11208db80a780ea0 /src/libstore/pathlocks.cc | |
parent | 06c5a7075d85636ba1fedce1fc5b131cdcffd5f8 (diff) |
* Bug fix: parallel builds of the same derivation failed due to lock file removal.
Diffstat (limited to 'src/libstore/pathlocks.cc')
-rw-r--r-- | src/libstore/pathlocks.cc | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/libstore/pathlocks.cc b/src/libstore/pathlocks.cc index c057edce1..321e965bb 100644 --- a/src/libstore/pathlocks.cc +++ b/src/libstore/pathlocks.cc @@ -87,10 +87,12 @@ PathLocks::~PathLocks() close(*i); for (Paths::iterator i = paths.begin(); i != paths.end(); i++) { - if (deletePaths) + if (deletePaths) { /* This is not safe in general! */ - if (unlink(i->c_str()) != 0) - throw SysError(format("removing lock file `%1%'") % *i); + unlink(i->c_str()); + /* Note that the result of unlink() is ignored; removing + the lock file is an optimisation, not a necessity. */ + } lockedPaths.erase(*i); } } |