A whole bunch of cleanups to state.Lock.

Now t/curse passes again when parallelized (except for the countall
mismatch, since we haven't fixed the source of that problem yet).  At least
it's consistent now.

There's a bunch of stuff rearranged in here, but the actual important
problem was that we were doing unlink() on the lock fifo even if ENXIO,
which meant a reader could connect in between ENXIO and unlink(), and thus
never get notified of the disconnection.  This would cause the build to
randomly freeze.
This commit is contained in:
Avery Pennarun 2010-11-19 06:04:45 -08:00
commit 362ca2997a
6 changed files with 65 additions and 43 deletions

View file

@ -1,3 +1,3 @@
redo t/clean
rm -f t/hello t/[by]ellow t/*.o *~ .*~ */*~ */.*~ *.pyc t/CC t/LD
rm -f *~ .*~ */*~ */.*~ *.pyc
rm -rf .redo t/.redo