This code chooses snapshot over enumerating the shared collection, but we at least need to lock to create the snapshot.