diff options
-rw-r--r-- | src/websockets/qwebsocketserver_p.cpp | 12 | ||||
-rw-r--r-- | src/websockets/qwebsocketserver_p.h | 2 |
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; |