Skip to content

Commit 90b389b

Browse files
committed
tried to fix null reference exception in websocket server middleware
1 parent c2267d2 commit 90b389b

1 file changed

Lines changed: 10 additions & 4 deletions

File tree

src/SuperSocket.WebSocket.Server/WebSocketServerMiddleware.cs

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,12 +62,18 @@ public override void Start(IServer server)
6262

6363
public override void Shutdown(IServer server)
6464
{
65+
_sessionContainerMiddleware = null;
66+
6567
var checkTimer = _checkingTimer;
66-
_checkingTimer = null;
67-
checkTimer.Change(Timeout.Infinite, Timeout.Infinite);
68-
checkTimer.Dispose();
6968

70-
_sessionContainerMiddleware = null;
69+
if (checkTimer == null)
70+
return;
71+
72+
if (Interlocked.CompareExchange(ref _checkingTimer, null, checkTimer) == checkTimer)
73+
{
74+
checkTimer.Change(Timeout.Infinite, Timeout.Infinite);
75+
checkTimer.Dispose();
76+
}
7177
}
7278

7379
public override ValueTask<bool> RegisterSession(IAppSession session)

0 commit comments

Comments
 (0)