perf: 给调用命令再次加个锁

This reverts commit 019f219ef8.
This commit is contained in:
MistEO
2022-10-11 10:58:01 +08:00
parent 019f219ef8
commit d2528b6f70
2 changed files with 5 additions and 1 deletions

View File

@@ -193,6 +193,7 @@ std::optional<std::string> asst::Controller::call_command(const std::string& cmd
std::optional<asst::platform::single_page_buffer<char>> sock_buffer;
auto start_time = steady_clock::now();
std::unique_lock<std::mutex> callcmd_lock(m_callcmd_mutex);
#ifdef _WIN32
@@ -337,7 +338,6 @@ std::optional<std::string> asst::Controller::call_command(const std::string& cmd
// AcceptEx, client_socker is connected and first chunk of data is received
DWORD len = 0;
if (GetOverlappedResult(reinterpret_cast<HANDLE>(m_server_sock), &sockov, &len, FALSE)) {
// unlock after accept
accept_pending = false;
if (recv_by_socket)
sock_data.insert(sock_data.end(), sock_buffer.value().get(), sock_buffer.value().get() + len);
@@ -433,6 +433,8 @@ std::optional<std::string> asst::Controller::call_command(const std::string& cmd
}
#endif
callcmd_lock.unlock();
auto duration = duration_cast<milliseconds>(steady_clock::now() - start_time).count();
Log.info("Call `", cmd, "` ret", exit_ret, ", cost", duration, "ms , stdout size:", pipe_data.size(),
", socket size:", sock_data.size());