From f8195b2cdd72048a91ad845af296ea66c9d26609 Mon Sep 17 00:00:00 2001 From: tqcq <99722391+tqcq@users.noreply.github.com> Date: Thu, 6 Mar 2025 16:48:16 +0800 Subject: [PATCH] fix tile init --- tile/init.cc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tile/init.cc b/tile/init.cc index 2cc3248..634f6ec 100644 --- a/tile/init.cc +++ b/tile/init.cc @@ -32,6 +32,7 @@ namespace tile { namespace { std::atomic g_quit_siganl{false}; +std::atomic g_tile_running{false}; void QuitSignalHandler(int sig) @@ -58,6 +59,11 @@ InstallQuitSignalHandler() int Start(int argc, char **argv, std::function cb, bool single_thread, bool enable_crash_catch) { + { + bool expected = false; + TILE_CHECK(g_tile_running.compare_exchange_strong(expected, true), "tile already running."); + } + if (enable_crash_catch) { // TODO: Add InstallFailureSignalHandler // google::InstallFailureSignalHandler(); @@ -139,6 +145,7 @@ void Init(int argc, char **argv, std::function cb) { std::unique_lock _(init_lock); + TILE_CHECK(g_tile_running.load() == false, "tile already running."); assert(lib_thread && "ReInitialize!!!"); const char *my_argv[1] = {"unknown"};