diff --git a/websocket-sharp/Server/WebSocketSessionManager.cs b/websocket-sharp/Server/WebSocketSessionManager.cs index f4c9212a..eebfc2ea 100644 --- a/websocket-sharp/Server/WebSocketSessionManager.cs +++ b/websocket-sharp/Server/WebSocketSessionManager.cs @@ -221,13 +221,21 @@ namespace WebSocketSharp.Server return _clean; } - internal set { - if (!(value ^ _clean)) + set { + string msg; + if (!canSet (out msg)) { + _log.Warn (msg); return; + } + + lock (_sync) { + if (!canSet (out msg)) { + _log.Warn (msg); + return; + } - _clean = value; - if (_state == ServerState.Start) - _sweepTimer.Enabled = value; + _clean = value; + } } }