diff --git a/websocket-sharp/Net/HttpListener.cs b/websocket-sharp/Net/HttpListener.cs index 8814a817..70f683b9 100644 --- a/websocket-sharp/Net/HttpListener.cs +++ b/websocket-sharp/Net/HttpListener.cs @@ -483,7 +483,15 @@ namespace WebSocketSharp.Net private void close (bool force) { EndPointManager.RemoveListener (this); - cleanup (force); + + lock (_ctxRegistrySync) { + if (!force) + sendServiceUnavailable (); + } + + cleanupContextRegistry (); + cleanupConnections (); + cleanupWaitQueue (new ObjectDisposedException (GetType ().ToString ())); } private HttpListenerContext getContextFromQueue ()