From bab92fe3e0391c3a6d1a6a9cc5fbe4fe25d689ae Mon Sep 17 00:00:00 2001 From: huangfeijie Date: Tue, 1 Nov 2022 11:57:47 +0800 Subject: [PATCH] issue: https://gitee.com/openharmony/arkcompiler_toolchain/issues/I5YS04 fix worker crash modify the config when destruction is called Signed-off-by: huangfeijie --- inspector/ws_server.cpp | 4 ++++ inspector/ws_server.h | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/inspector/ws_server.cpp b/inspector/ws_server.cpp index 08f64103..50e9c5f6 100644 --- a/inspector/ws_server.cpp +++ b/inspector/ws_server.cpp @@ -50,6 +50,7 @@ void WsServer::RunServer() CommProtocol::endpoint endPoint(sockName); #endif ioContext_ = std::make_unique(); + terminateState_ = true; CommProtocol::socket socket(*ioContext_); CommProtocol::acceptor acceptor(*ioContext_, endPoint); auto& connectFlag = connectState_; @@ -90,6 +91,9 @@ void WsServer::RunServer() void WsServer::StopServer() { LOGI("WsServer StopServer"); + while (!terminateState_) { + usleep(DEBUGGER_WAIT_TIME); + } terminateExecution_ = true; if (!connectState_) { ioContext_->stop(); diff --git a/inspector/ws_server.h b/inspector/ws_server.h index f6bc44da..ec04557a 100644 --- a/inspector/ws_server.h +++ b/inspector/ws_server.h @@ -50,8 +50,10 @@ public: void SendReply(const std::string& message) const; private: - std::atomic connectState_ {false}; + static constexpr int32_t DEBUGGER_WAIT_TIME = 1000; + std::atomic connectState_ { false }; std::atomic terminateExecution_ { false }; + std::atomic terminateState_ { false }; [[maybe_unused]] int32_t instanceId_ {0}; pthread_t tid_ {0}; std::string componentName_ {}; -- Gitee