diff --git a/ixwebsocket/IXWebSocket.cpp b/ixwebsocket/IXWebSocket.cpp index 7582284d..3b6a81d0 100644 --- a/ixwebsocket/IXWebSocket.cpp +++ b/ixwebsocket/IXWebSocket.cpp @@ -38,7 +38,7 @@ namespace ix WebSocket::WebSocket() : _onMessageCallback(OnMessageCallback()), _stop(false), - _blocking(true), + _backgroundThreadRunning(false), _automaticReconnection(true), _handshakeTimeoutSecs(kDefaultHandShakeTimeoutSecs), _enablePong(kDefaultEnablePong), @@ -136,7 +136,7 @@ namespace ix { if (_thread.joinable()) return; // we've already been started - _blocking = false; + _backgroundThreadRunning = true; _thread = std::thread(&WebSocket::run, this); } @@ -157,8 +157,8 @@ namespace ix _stop = true; _thread.join(); + _backgroundThreadRunning = false; _stop = false; - _blocking = true; _automaticReconnection = automaticReconnection; } @@ -321,7 +321,7 @@ namespace ix // an explicit disconnection from the callback, or by the remote end // closing the connection, ie isConnected() == false. // closing the connection, ie isConnectedOrClosing() == false. - if (_blocking && !isConnectedOrClosing() && !_automaticReconnection) return; + if (!_backgroundThreadRunning && !isConnected() && !_automaticReconnection) return; } } diff --git a/ixwebsocket/IXWebSocket.h b/ixwebsocket/IXWebSocket.h index a1fc86fa..d825a2d0 100644 --- a/ixwebsocket/IXWebSocket.h +++ b/ixwebsocket/IXWebSocket.h @@ -154,7 +154,7 @@ namespace ix static OnTrafficTrackerCallback _onTrafficTrackerCallback; std::atomic _stop; - std::atomic _blocking; + std::atomic _backgroundThreadRunning; std::atomic _automaticReconnection; std::thread _thread; std::mutex _writeMutex;