ensure no concurrent read