From 5bd88ee1a320d4fb677a443c5ac53e8bfc7a0934 Mon Sep 17 00:00:00 2001 From: sta Date: Tue, 20 May 2014 14:26:53 +0900 Subject: [PATCH] Fix a few for WebSocket.cs --- websocket-sharp/WebSocket.cs | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/websocket-sharp/WebSocket.cs b/websocket-sharp/WebSocket.cs index 2bc00150..b28319de 100644 --- a/websocket-sharp/WebSocket.cs +++ b/websocket-sharp/WebSocket.cs @@ -1035,16 +1035,21 @@ namespace WebSocketSharp private void open () { - startReceiving (); + try { + startReceiving (); - lock (_forEvent) { - try { - OnOpen.Emit (this, EventArgs.Empty); - } - catch (Exception ex) { - acceptException (ex, "An exception has occurred while OnOpen."); + lock (_forEvent) { + try { + OnOpen.Emit (this, EventArgs.Empty); + } + catch (Exception ex) { + acceptException (ex, "An exception has occurred while OnOpen."); + } } } + catch (Exception ex) { + acceptException (ex, "An exception has occurred while opening."); + } } // As client @@ -1468,8 +1473,11 @@ namespace WebSocketSharp internal bool Ping (byte [] frame, int timeout) { try { - var pong = _receivePong; - return _readyState == WebSocketState.Open && send (frame) && pong.WaitOne (timeout); + AutoResetEvent pong; + return _readyState == WebSocketState.Open && + send (frame) && + (pong = _receivePong) != null && + pong.WaitOne (timeout); } catch (Exception ex) { _logger.Fatal ("An exception has occurred while Ping:\n" + ex.ToString ());