summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMilian Wolff <mail@milianw.de>2014-02-06 17:42:05 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-02-06 20:17:23 +0100
commit862ac1547c19b02fc36bdc4b6ce5c6cf3442a868 (patch)
treed093564569da17fe3276089a314cc01bff142a8c
parent47cbfe2aca62fa524da171ef147d959afee993ec (diff)
downloadqtwebsockets-862ac1547c19b02fc36bdc4b6ce5c6cf3442a868.tar.gz
Do not try to invoke/emit signal on shutdown.
I'm actually not sure whether this is the right way to do this, but when the object is destroyed, we cannot delay the signal emit. In that case, we just don't emit it at all. This is the old behavior minus the warning: QWARN : tst_QWebSocketServer::tst_initialisation() QMetaObject::invokeMethod: No such method QObject::closed() Change-Id: I0513dd693ef7bfc43621e24361e72e90204fbea3 Reviewed-by: Kurt Pattyn <pattyn.kurt@gmail.com>
-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;