diff --git a/websocket-sharp/Server/WebSocketSessionManager.cs b/websocket-sharp/Server/WebSocketSessionManager.cs index 2265a46c..8174bca1 100644 --- a/websocket-sharp/Server/WebSocketSessionManager.cs +++ b/websocket-sharp/Server/WebSocketSessionManager.cs @@ -30,6 +30,7 @@ using System; using System.Collections; using System.Collections.Generic; using System.IO; +using System.Linq; using System.Text; using System.Threading; using System.Timers; @@ -132,11 +133,15 @@ namespace WebSocketSharp.Server /// public IEnumerable IDs { get { - if (_state == ServerState.ShuttingDown) - return new string[0]; + if (_state != ServerState.Start) + return Enumerable.Empty (); + + lock (_sync) { + if (_state != ServerState.Start) + return Enumerable.Empty (); - lock (_sync) return _sessions.Keys.ToList (); + } } }