Fix a few for WebSocket.cs

This commit is contained in:
sta 2014-05-20 14:26:53 +09:00
parent 142fc2213d
commit 5bd88ee1a3

View File

@ -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 ());