summaryrefslogtreecommitdiffstats
path: root/src/OSSupport/NetworkSingleton.cpp
diff options
context:
space:
mode:
authorTiger Wang <ziwei.tiger@outlook.com>2020-05-20 20:59:46 +0200
committerTiger Wang <ziwei.tiger@outlook.com>2020-07-26 19:57:48 +0200
commit072fdf348826db6bc75207540c55e8e275227516 (patch)
tree433cf29095b8796dd737790fa0be693b1b836613 /src/OSSupport/NetworkSingleton.cpp
parent1.14 connection support (diff)
downloadcuberite-072fdf348826db6bc75207540c55e8e275227516.tar
cuberite-072fdf348826db6bc75207540c55e8e275227516.tar.gz
cuberite-072fdf348826db6bc75207540c55e8e275227516.tar.bz2
cuberite-072fdf348826db6bc75207540c55e8e275227516.tar.lz
cuberite-072fdf348826db6bc75207540c55e8e275227516.tar.xz
cuberite-072fdf348826db6bc75207540c55e8e275227516.tar.zst
cuberite-072fdf348826db6bc75207540c55e8e275227516.zip
Diffstat (limited to 'src/OSSupport/NetworkSingleton.cpp')
-rw-r--r--src/OSSupport/NetworkSingleton.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/OSSupport/NetworkSingleton.cpp b/src/OSSupport/NetworkSingleton.cpp
index e022f4fec..54842f358 100644
--- a/src/OSSupport/NetworkSingleton.cpp
+++ b/src/OSSupport/NetworkSingleton.cpp
@@ -16,7 +16,8 @@
cNetworkSingleton::cNetworkSingleton() :
- m_HasTerminated(true)
+ m_HasTerminated(true),
+ m_Resolver(m_Context)
{
}
@@ -47,7 +48,9 @@ cNetworkSingleton & cNetworkSingleton::Get(void)
void cNetworkSingleton::Initialise(void)
{
// Start the lookup thread
- m_LookupThread.Start();
+ m_Context.restart();
+ m_Context.get_executor().on_work_started();
+ m_LookupThread = std::thread([this] { m_Context.run(); });
// Windows: initialize networking:
#ifdef _WIN32
@@ -100,7 +103,8 @@ void cNetworkSingleton::Terminate(void)
ASSERT(!m_HasTerminated);
// Wait for the lookup thread to stop
- m_LookupThread.Stop();
+ m_Context.get_executor().on_work_finished();
+ m_LookupThread.join();
// Wait for the LibEvent event loop to terminate:
event_base_loopbreak(m_EventBase);