From ddd5f55915eaca575ac782c4a12c0e3110d3d5e2 Mon Sep 17 00:00:00 2001 From: Ali Naqvi Date: Mon, 13 Jan 2025 21:03:36 +0800 Subject: [PATCH] chore: patch net.xx files (#205) --- src/net.cpp | 8 ++++++-- src/net.hpp | 9 +++------ 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/net.cpp b/src/net.cpp index de1a1d72..86520cd3 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -28,10 +28,14 @@ namespace pipy { Net* Net::s_main = nullptr; -thread_local Net Net::s_current; + +auto Net::current() -> Net& { + static thread_local Net s_current; + return s_current; +} void Net::init() { - s_main = &s_current; + s_main = ¤t(); #ifdef _WIN32 asio::detail::win_thread::set_terminate_threads(true); diff --git a/src/net.hpp b/src/net.hpp index a41bd076..60341e5c 100644 --- a/src/net.hpp +++ b/src/net.hpp @@ -48,15 +48,13 @@ class Net { return *s_main; } - static auto current() -> Net& { - return s_current; - } + static auto current() -> Net&; static auto context() -> asio::io_context& { - return s_current.m_io_context; + return current().m_io_context; } - static bool is_main() { return &s_current == s_main; } + static bool is_main() { return ¤t() == s_main; } auto io_context() -> asio::io_context& { return m_io_context; } bool is_running() const { return m_is_running; } @@ -72,7 +70,6 @@ class Net { asio::io_context m_io_context; bool m_is_running; static Net* s_main; - static thread_local Net s_current; }; //