Until calling IBuildCache.UnlockForBuilder, it is guaranteed that no IBuildCache.Store operation will be ran for the given builder from other threads.
public void LockForBuilder(BuildKey builder) { var lck = GetOrCreateLock(builder); lck.EnterUpgradeableReadLock(); }