about summary refs log tree commit diff
path: root/src/libstore/build.cc
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2011-12-25T16·38+0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2011-12-25T16·38+0000
commit8c42a8c8ff2986940a41d46b0bdaa1c2ff0f15ad (patch)
tree9149bcc1608f14a31b79a8165a772d127e90c196 /src/libstore/build.cc
parent524fa8a4f11826fdf22005f3304366856f72ffa5 (diff)
* Make sure that lock files are cleaned up properly when building
  through the build hook.

Diffstat (limited to 'src/libstore/build.cc')
-rw-r--r--src/libstore/build.cc14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/libstore/build.cc b/src/libstore/build.cc
index a8ef9b23ef..149cd8b097 100644
--- a/src/libstore/build.cc
+++ b/src/libstore/build.cc
@@ -1300,6 +1300,13 @@ void DerivationGoal::buildDone()
            being valid. */
         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) {
         printMsg(lvlError, e.msg());
         outputLocks.unlock();
@@ -1987,13 +1994,6 @@ void DerivationGoal::computeClosure()
         infos.push_back(info);
     }
     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();
 }