fix crash on close

This commit is contained in:
Dimon4eg 2019-05-10 20:32:17 +03:00
parent dfaaaca223
commit 1778874ea8
2 changed files with 6 additions and 12 deletions

View File

@ -144,17 +144,15 @@ namespace ix
// This value needs to be forced when shutting down, it is restored later
_automaticReconnection = false;
// sync close
close();
if (!_thread.joinable())
if (_thread.joinable())
{
_automaticReconnection = automaticReconnection;
return;
}
_stop = true;
_thread.join();
_stop = false;
}
_automaticReconnection = automaticReconnection;
}
@ -289,10 +287,8 @@ namespace ix
{
setThreadName(getUrl());
while (true)
while (getReadyState() != WebSocket_ReadyState_Closed)
{
if (_stop && !isClosing()) return;
// 1. Make sure we are always connected
reconnectPerpetuallyIfDisconnected();

View File

@ -91,7 +91,6 @@ namespace ix
void setUrl(const std::string& url);
void setPerMessageDeflateOptions(const WebSocketPerMessageDeflateOptions& perMessageDeflateOptions);
void setHandshakeTimeout(int handshakeTimeoutSecs);
void setHeartBeatPeriod(int heartBeatPeriodSecs);
void setPingInterval(int pingIntervalSecs); // alias of setHeartBeatPeriod
void setPingTimeout(int pingTimeoutSecs);
@ -142,7 +141,6 @@ namespace ix
static void invokeTrafficTrackerCallback(size_t size, bool incoming);
// Server
void setSocketFileDescriptor(int fd);
WebSocketInitResult connectToSocket(int fd, int timeoutSecs);
WebSocketTransport _ws;