Documentation

If a buildLock is passed there is an important contract here. That lock must
protect the snapshot, and it must be safe to unlock it if there are no further
modifications to the snapshot to be performed by this build.