From 824b154ce82a76bfc604b3084b18e06af4e3d007 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 16 Feb 2009 09:24:20 +0000 Subject: * Release output locks as soon as possible, not when the destructor of the DerivationGoal runs. Otherwise, if a goal is a top-level goal, then the lock won't be released until nix-store finishes. With --keep-going and lots of top-level goals, it's possible to run out of file descriptors (this happened sometimes in the build farm for Nixpkgs). Also, for failed derivation, it won't be possible to build it again until the lock is released. * Idem for locks on build users: these weren't released in a timely manner for failed top-level derivation goals. So if there were more than (say) 10 such failed builds, you would get an error about having run out of build users. --- src/libstore/pathlocks.hh | 1 + 1 file changed, 1 insertion(+) (limited to 'src/libstore/pathlocks.hh') diff --git a/src/libstore/pathlocks.hh b/src/libstore/pathlocks.hh index 8b4100028..9898b497b 100644 --- a/src/libstore/pathlocks.hh +++ b/src/libstore/pathlocks.hh @@ -36,6 +36,7 @@ public: void lockPaths(const PathSet & _paths, const string & waitMsg = ""); ~PathLocks(); + void unlock(); void setDeletion(bool deletePaths); }; -- cgit v1.2.3