private void Cleanup() { IntPtr handle = _loop.Handle; try { Release(); } catch (Exception ex) { if (Logger.WarnEnabled) { Logger.LoopReleaseError(_thread, handle, ex); } } SafeDispose(_timerHandle); SafeDispose(_asyncHandle); SafeDispose(_loop); if (Logger.InfoEnabled) { Logger.LoopDisposed(_thread, handle); } }