private static bool CheckVolumeMounted (Volume volume) { if (volume != null && !(volume is IDiscVolume)) { lock (mounted_volumes) { if (mounted_volumes.ContainsKey (volume.HalDevice)) { return true; } else if (unmounted_volumes.ContainsKey (volume.HalDevice)) { return false; } volume.HalDevice.PropertyModified += HandleVolumeChanged; if (!volume.IsMounted) { unmounted_volumes[volume.HalDevice] = volume; return false; } else { mounted_volumes[volume.HalDevice] = volume; } } } return true; }