about summary refs log tree commit diff
path: root/src/libstore/pathlocks.hh
AgeCommit message (Collapse)AuthorFilesLines
2007-08-28 * Fix a race condition with parallel builds where multipleEelco Dolstra1-0/+3
fixed-output derivations or substitutions try to build the same store path at the same time. Locking generally catches this, but not between multiple goals in the same process. This happened especially often (actually, only) in the build farm with fetchurl downloads of the same file being executed on multiple machines and then copied back to the main machine where they would clobber each other (NIXBF-13). Solution: if a goal notices that the output path is already locked, then go to sleep until another goal finishes (hopefully the one locking the path) and try again.
2006-09-04 * Use a proper namespace.Eelco Dolstra1-2/+8
* Optimise header file usage a bit. * Compile the parser as C++.
2006-06-20 * Concurrent GC on Cygwin.Eelco Dolstra1-0/+10
2006-06-15 * In `nix-env -i|-u|-e', lock the profile to prevent races betweenEelco Dolstra1-2/+4
concurrent nix-env operations on the same profile. Fixes NIX-7.
2005-01-27 * Make lock removal safe by signalling to blocked processes that theEelco Dolstra1-2/+2
lock they are waiting on has become stale (we do this by writing a meaningless token to the unlinked file).
2004-05-11 * True parallel builds. Nix can now run as many build jobs inEelco Dolstra1-1/+3
parallel as possible (similar to GNU Make's `-j' switch). This is useful on SMP systems, but it is especially useful for doing builds on multiple machines. The idea is that a large derivation is initiated on one master machine, which then distributes sub-derivations to any number of slave machines. This should not happen synchronously or in lock-step, so the master must be capable of dealing with multiple parallel build jobs. We now have the infrastructure to support this. TODO: substitutes are currently broken.
2003-11-21 * Remove lock files after building. Eelco Dolstra1-0/+2
2003-11-18 * libnix -> libstore.Eelco Dolstra1-0/+24