nix-super/src/libstore
Eelco Dolstra cacff1be88 * No longer block while waiting for a lock on a store path. Instead
poll for it (i.e. if we can't acquire the lock, then let the main
  select() loop wait for at most a few seconds and then try again).
  This improves parallelism: if two nix-store processes are both
  trying to build a path at the same time, the second one shouldn't
  block; it should first see if it can build other goals.  Also, it
  prevents the deadlocks that have been occuring in Hydra lately,
  where a process waits for a lock held by another process that's
  waiting for a lock held by the first.

  The downside is that polling isn't really elegant, but POSIX doesn't
  provide a way to wait for locks in a select() loop.  The only
  solution would be to spawn a thread for each lock to do a blocking
  fcntl() and then signal the main thread, but that would require
  pthreads.
2009-03-23 01:05:54 +00:00
..
build.cc * No longer block while waiting for a lock on a store path. Instead 2009-03-23 01:05:54 +00:00
db.cc * Merged the no-bdb branch (-r10900:HEAD 2008-06-09 13:52:45 +00:00
db.hh * Get rid of the substitutes database table (NIX-47). Instead, if we 2007-08-12 00:29:28 +00:00
derivations-ast.def * Automatically upgrade <= 0.7 Nix stores to the new schema (so that 2005-02-09 09:50:29 +00:00
derivations.cc * Strip off the `.nix' suffix from the attribute name for files in 2008-08-25 13:31:57 +00:00
derivations.hh * Remove unnecessary inclusions of aterm2.h. 2006-09-04 22:08:40 +00:00
gc.cc * Put chroots in the Nix store. This ensures that we can create hard 2008-12-12 17:14:57 +00:00
globals.cc * No longer block while waiting for a lock on a store path. Instead 2009-03-23 01:05:54 +00:00
globals.hh * No longer block while waiting for a lock on a store path. Instead 2009-03-23 01:05:54 +00:00
local-store.cc * NAR archives: handle files larger than 2^32 bytes. Previously it 2009-03-22 17:36:43 +00:00
local-store.hh * nix-store --verify: repair bad hash fields in the metadata file. 2008-12-16 13:28:18 +00:00
Makefile.am * Merged the no-bdb branch (-r10900:HEAD 2008-06-09 13:52:45 +00:00
misc.cc * nix-env --dry-run: show the total size of the substituter 2008-08-04 12:29:04 +00:00
misc.hh * nix-env --dry-run: show the total size of the substituter 2008-08-04 12:29:04 +00:00
optimise-store.cc * `nix-store --optimise': handle files with >= 32000 hard links. 2008-06-18 14:13:00 +00:00
pathlocks.cc * No longer block while waiting for a lock on a store path. Instead 2009-03-23 01:05:54 +00:00
pathlocks.hh * No longer block while waiting for a lock on a store path. Instead 2009-03-23 01:05:54 +00:00
references.cc * GCC 4.3.0 (Fedora 9) compatibility fixes. Reported by Gour and 2008-05-21 11:17:31 +00:00
references.hh * Use a proper namespace. 2006-09-04 21:06:23 +00:00
remote-store.cc * Pass --use-atime / --max-atime to the daemon. 2008-12-16 12:23:35 +00:00
remote-store.hh * Open the connection to the daemon lazily (on demand) so that 2008-12-11 14:30:25 +00:00
store-api.cc * Build on Debian 4.0 (GCC 4.1.1). 2008-12-04 21:07:29 +00:00
store-api.hh * Pass HashType values instead of strings. 2008-12-03 16:10:17 +00:00
upgrade-schema.cc * Merged the no-bdb branch (-r10900:HEAD 2008-06-09 13:52:45 +00:00
worker-protocol.hh * Pass --use-atime / --max-atime to the daemon. 2008-12-16 12:23:35 +00:00