@@ -1061,8 +1061,10 @@ public void HeartbeatReadTimerCallback(object state)
1061
1061
{
1062
1062
_heartbeatReadTimer . Change ( Heartbeat * 1000 , Timeout . Infinite ) ;
1063
1063
}
1064
- } catch ( ObjectDisposedException ignored )
1064
+ }
1065
+ catch ( ObjectDisposedException ignored )
1065
1066
{
1067
+
1066
1068
// timer is already disposed,
1067
1069
// e.g. due to shutdown
1068
1070
}
@@ -1096,7 +1098,8 @@ public void HeartbeatWriteTimerCallback(object state)
1096
1098
TerminateMainloop ( ) ;
1097
1099
FinishClose ( ) ;
1098
1100
}
1099
- } catch ( ObjectDisposedException ignored )
1101
+ }
1102
+ catch ( ObjectDisposedException ignored )
1100
1103
{
1101
1104
// timer is already disposed,
1102
1105
// e.g. due to shutdown
@@ -1105,19 +1108,21 @@ public void HeartbeatWriteTimerCallback(object state)
1105
1108
1106
1109
protected void MaybeStopHeartbeatTimers ( )
1107
1110
{
1108
- MaybeDisposeTimer ( _heartbeatReadTimer ) ;
1109
- MaybeDisposeTimer ( _heartbeatWriteTimer ) ;
1111
+ MaybeDisposeTimer ( ref _heartbeatReadTimer ) ;
1112
+ MaybeDisposeTimer ( ref _heartbeatWriteTimer ) ;
1110
1113
}
1111
1114
1112
- private void MaybeDisposeTimer ( Timer timer )
1115
+ private void MaybeDisposeTimer ( ref Timer timer )
1113
1116
{
1114
1117
if ( timer != null )
1115
1118
{
1116
1119
try
1117
1120
{
1118
1121
timer . Change ( Timeout . Infinite , Timeout . Infinite ) ;
1119
1122
timer . Dispose ( ) ;
1120
- } catch ( ObjectDisposedException ignored )
1123
+ timer = null ;
1124
+ }
1125
+ catch ( ObjectDisposedException ignored )
1121
1126
{
1122
1127
// we are shutting down, ignore
1123
1128
}
0 commit comments