diff --git a/websocket-sharp/Net/HttpListenerAsyncResult.cs b/websocket-sharp/Net/HttpListenerAsyncResult.cs index 5a78d070..f440662c 100644 --- a/websocket-sharp/Net/HttpListenerAsyncResult.cs +++ b/websocket-sharp/Net/HttpListenerAsyncResult.cs @@ -148,6 +148,30 @@ namespace WebSocketSharp.Net #region Private Methods + private void complete () + { + lock (_sync) { + _completed = true; + + if (_waitHandle != null) + _waitHandle.Set (); + } + + if (_callback == null) + return; + + ThreadPool.QueueUserWorkItem ( + state => { + try { + _callback (this); + } + catch { + } + }, + null + ); + } + private static void complete (HttpListenerAsyncResult asyncResult) { lock (asyncResult._sync) {