Patch Set 1:

Yeah, sure an immutable dircache must be deeply immutable. We can do that.

Another is to copy on write, so those that are reading it can continue processing. It should also be possible to ask the dircache wether it is valid or not so potentially slow processes, like the decorator can figure out that it should abandon its work and restart. It is more complicated than that; sometimes an reader should modify the index (see my comments on patch 1 of I133cd170f9f91aa6e3905cdd8dee87b719159a24), however it may do so by suggesting to the next writer that a particular entry should be refreshed.  

Go figure.