This is an automated email from the ASF dual-hosted git repository. gabriellee pushed a commit to branch branch-2.1 in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.1 by this push: new b91d8e23273 [Improvement](minor) Reduce locking scope (#41845) (#41844) b91d8e23273 is described below commit b91d8e232739322e76d846a576995d9c09def3b6 Author: Gabriel <gabrielleeb...@gmail.com> AuthorDate: Tue Oct 15 18:39:53 2024 +0800 [Improvement](minor) Reduce locking scope (#41845) (#41844) pick #41845 --- be/src/runtime/fragment_mgr.cpp | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/be/src/runtime/fragment_mgr.cpp b/be/src/runtime/fragment_mgr.cpp index 4696814e55d..8473c885a8b 100644 --- a/be/src/runtime/fragment_mgr.cpp +++ b/be/src/runtime/fragment_mgr.cpp @@ -698,18 +698,22 @@ Status FragmentMgr::exec_plan_fragment(const TPipelineFragmentParams& params, } Status FragmentMgr::start_query_execution(const PExecPlanFragmentStartRequest* request) { - std::lock_guard<std::mutex> lock(_lock); - TUniqueId query_id; - query_id.__set_hi(request->query_id().hi()); - query_id.__set_lo(request->query_id().lo()); - auto search = _query_ctx_map.find(query_id); - if (search == _query_ctx_map.end()) { - return Status::InternalError( - "Failed to get query fragments context. Query may be " - "timeout or be cancelled. host: {}", - BackendOptions::get_localhost()); + std::shared_ptr<QueryContext> q_ctx = nullptr; + { + std::lock_guard<std::mutex> lock(_lock); + TUniqueId query_id; + query_id.__set_hi(request->query_id().hi()); + query_id.__set_lo(request->query_id().lo()); + auto search = _query_ctx_map.find(query_id); + if (search == _query_ctx_map.end()) { + return Status::InternalError( + "Failed to get query fragments context. Query may be " + "timeout or be cancelled. host: {}", + BackendOptions::get_localhost()); + } + q_ctx = search->second; } - search->second->set_ready_to_execute(false); + q_ctx->set_ready_to_execute(false); return Status::OK(); } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org