|
|
|
@ -401,18 +401,6 @@ namespace WebSocketSharp.Net
|
|
|
|
|
|
|
|
|
|
|
|
#region Private Methods
|
|
|
|
#region Private Methods
|
|
|
|
|
|
|
|
|
|
|
|
private void cleanup (bool force)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
lock (_ctxRegistrySync) {
|
|
|
|
|
|
|
|
if (!force)
|
|
|
|
|
|
|
|
sendServiceUnavailable ();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cleanupContextRegistry ();
|
|
|
|
|
|
|
|
cleanupConnections ();
|
|
|
|
|
|
|
|
cleanupWaitQueue ();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void cleanupConnections ()
|
|
|
|
private void cleanupConnections ()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
HttpConnection[] conns = null;
|
|
|
|
HttpConnection[] conns = null;
|
|
|
|
@ -449,22 +437,6 @@ namespace WebSocketSharp.Net
|
|
|
|
ctxs[i].Connection.Close (true);
|
|
|
|
ctxs[i].Connection.Close (true);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void cleanupWaitQueue ()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
HttpListenerAsyncResult[] aress = null;
|
|
|
|
|
|
|
|
lock (_waitQueueSync) {
|
|
|
|
|
|
|
|
if (_waitQueue.Count == 0)
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
aress = _waitQueue.ToArray ();
|
|
|
|
|
|
|
|
_waitQueue.Clear ();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var ex = new ObjectDisposedException (GetType ().ToString ());
|
|
|
|
|
|
|
|
foreach (var ares in aress)
|
|
|
|
|
|
|
|
ares.Complete (ex);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void cleanupWaitQueue (Exception exception)
|
|
|
|
private void cleanupWaitQueue (Exception exception)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
HttpListenerAsyncResult[] aress = null;
|
|
|
|
HttpListenerAsyncResult[] aress = null;
|
|
|
|
|