@@ -1061,8 +1061,10 @@ public void HeartbeatReadTimerCallback(object state)
10611061 {
10621062 _heartbeatReadTimer . Change ( Heartbeat * 1000 , Timeout . Infinite ) ;
10631063 }
1064- } catch ( ObjectDisposedException ignored )
1064+ }
1065+ catch ( ObjectDisposedException ignored )
10651066 {
1067+
10661068 // timer is already disposed,
10671069 // e.g. due to shutdown
10681070 }
@@ -1096,7 +1098,8 @@ public void HeartbeatWriteTimerCallback(object state)
10961098 TerminateMainloop ( ) ;
10971099 FinishClose ( ) ;
10981100 }
1099- } catch ( ObjectDisposedException ignored )
1101+ }
1102+ catch ( ObjectDisposedException ignored )
11001103 {
11011104 // timer is already disposed,
11021105 // e.g. due to shutdown
@@ -1105,19 +1108,21 @@ public void HeartbeatWriteTimerCallback(object state)
11051108
11061109 protected void MaybeStopHeartbeatTimers ( )
11071110 {
1108- MaybeDisposeTimer ( _heartbeatReadTimer ) ;
1109- MaybeDisposeTimer ( _heartbeatWriteTimer ) ;
1111+ MaybeDisposeTimer ( ref _heartbeatReadTimer ) ;
1112+ MaybeDisposeTimer ( ref _heartbeatWriteTimer ) ;
11101113 }
11111114
1112- private void MaybeDisposeTimer ( Timer timer )
1115+ private void MaybeDisposeTimer ( ref Timer timer )
11131116 {
11141117 if ( timer != null )
11151118 {
11161119 try
11171120 {
11181121 timer . Change ( Timeout . Infinite , Timeout . Infinite ) ;
11191122 timer . Dispose ( ) ;
1120- } catch ( ObjectDisposedException ignored )
1123+ timer = null ;
1124+ }
1125+ catch ( ObjectDisposedException ignored )
11211126 {
11221127 // we are shutting down, ignore
11231128 }
0 commit comments