diff --git a/src/WSServer.cpp b/src/WSServer.cpp
index 5230f482..15fa0afd 100644
--- a/src/WSServer.cpp
+++ b/src/WSServer.cpp
@@ -25,6 +25,7 @@ with this program. If not, see
#include
#include
#include
+#include
#include "WSServer.h"
#include "obs-websocket.h"
@@ -127,6 +128,8 @@ void WSServer::stop()
_connections.clear();
_connectionProperties.clear();
+ _threadPool.waitForDone();
+
while (!_server.stopped()) {
std::this_thread::sleep_for(std::chrono::milliseconds(1));
}
@@ -166,7 +169,7 @@ void WSServer::onMessage(connection_hdl hdl, server::message_ptr message)
return;
}
- QtConcurrent::run([=]() {
+ QtConcurrent::run(&_threadPool, [=]() {
std::string payload = message->get_payload();
QMutexLocker locker(&_clMutex);
diff --git a/src/WSServer.h b/src/WSServer.h
index 8147ca4f..e9faf885 100644
--- a/src/WSServer.h
+++ b/src/WSServer.h
@@ -22,6 +22,7 @@ with this program. If not, see
#include
#include
#include
+#include
#include