protected unsafe override void Dispose (bool disposing) { base.Dispose (disposing); if (signal_info == IntPtr.Zero) return; uninstall (signal_info); signal_info = IntPtr.Zero; }