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;
+ }
}
}