diff --git a/websocket-sharp/Server/HttpServer.cs b/websocket-sharp/Server/HttpServer.cs index a2491579..7651a3db 100644 --- a/websocket-sharp/Server/HttpServer.cs +++ b/websocket-sharp/Server/HttpServer.cs @@ -638,19 +638,32 @@ namespace WebSocketSharp.Server /// A that represents the wait time. The default value is /// the same as 1 second. /// + /// + /// The value specified for a set operation is zero or less. + /// public TimeSpan WaitTime { get { return _services.WaitTime; } set { - var msg = _state.CheckIfAvailable (true, false, false) ?? value.CheckIfValidWaitTime (); - if (msg != null) { - _log.Error (msg); + string msg; + if (!value.CheckWaitTime (out msg)) + throw new ArgumentException (msg, "value"); + + if (!canSet (out msg)) { + _log.Warn (msg); return; } - _services.WaitTime = value; + lock (_sync) { + if (!canSet (out msg)) { + _log.Warn (msg); + return; + } + + _services.WaitTime = value; + } } }