aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/websockets/qwebsocketserver_p.cpp12
-rw-r--r--src/websockets/qwebsocketserver_p.h2
2 files changed, 8 insertions, 6 deletions
diff --git a/src/websockets/qwebsocketserver_p.cpp b/src/websockets/qwebsocketserver_p.cpp
index 6797cbc..f1c616d 100644
--- a/src/websockets/qwebsocketserver_p.cpp
+++ b/src/websockets/qwebsocketserver_p.cpp
@@ -111,14 +111,14 @@ void QWebSocketServerPrivate::init()
*/
QWebSocketServerPrivate::~QWebSocketServerPrivate()
{
- close();
+ close(true);
m_pTcpServer->deleteLater();
}
/*!
\internal
*/
-void QWebSocketServerPrivate::close()
+void QWebSocketServerPrivate::close(bool aboutToDestroy)
{
Q_Q(QWebSocketServer);
m_pTcpServer->close();
@@ -128,9 +128,11 @@ void QWebSocketServerPrivate::close()
QWebSocketServer::tr("Server closed."));
pWebSocket->deleteLater();
}
- //emit signal via the event queue, so the server gets time
- //to process any hanging events, like flushing buffers aso
- QMetaObject::invokeMethod(q, "closed", Qt::QueuedConnection);
+ if (!aboutToDestroy) {
+ //emit signal via the event queue, so the server gets time
+ //to process any hanging events, like flushing buffers aso
+ QMetaObject::invokeMethod(q, "closed", Qt::QueuedConnection);
+ }
}
/*!
diff --git a/src/websockets/qwebsocketserver_p.h b/src/websockets/qwebsocketserver_p.h
index c4afd3d..e932607 100644
--- a/src/websockets/qwebsocketserver_p.h
+++ b/src/websockets/qwebsocketserver_p.h
@@ -86,7 +86,7 @@ public:
virtual ~QWebSocketServerPrivate();
void init();
- void close();
+ void close(bool aboutToDestroy = false);
QString errorString() const;
bool hasPendingConnections() const;
bool isListening() const;