public void ForceAddVoxel(Voxel_Habitat newVoxel) { VoxelListLock.EnterWriteLock(); try { listOfVoxels.Add(newVoxel); } finally { VoxelListLock.ExitWriteLock(); } }
public void AddVoxel(Voxel_Habitat newVoxel) { VoxelListLock.EnterUpgradeableReadLock(); try { if (!listOfVoxels.Contains(newVoxel)) { VoxelListLock.EnterWriteLock(); try { listOfVoxels.Add(newVoxel); } finally { VoxelListLock.ExitWriteLock(); } } } finally { VoxelListLock.ExitUpgradeableReadLock(); } }