From 03d62efe130faca6fb69abea2b8717abe84ac982 Mon Sep 17 00:00:00 2001 From: keynote <119899374+keynote@users.noreply.github.com> Date: Wed, 25 Feb 2026 21:34:52 +0100 Subject: [PATCH] artic_base_client: Fix high cpu usage (#1789) Fixes high CPU usage by adding a small sleep to the Client::Read and Client::Write methods --- src/network/artic_base/artic_base_client.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/network/artic_base/artic_base_client.cpp b/src/network/artic_base/artic_base_client.cpp index b38416cc4..5b3ac3396 100644 --- a/src/network/artic_base/artic_base_client.cpp +++ b/src/network/artic_base/artic_base_client.cpp @@ -606,6 +606,7 @@ bool Client::Read(SocketHolder sockFD, void* buffer, size_t size, if (GET_ERRNO == ERRNO(EWOULDBLOCK) && (timeout == std::chrono::nanoseconds(0) || std::chrono::steady_clock::now() - before < timeout)) { + std::this_thread::sleep_for(100us); continue; } read_bytes = 0; @@ -630,6 +631,7 @@ bool Client::Write(SocketHolder sockFD, const void* buffer, size_t size, if (GET_ERRNO == ERRNO(EWOULDBLOCK) && (timeout == std::chrono::nanoseconds(0) || std::chrono::steady_clock::now() - before < timeout)) { + std::this_thread::sleep_for(100us); continue; } write_bytes = 0; @@ -863,4 +865,4 @@ void Client::OnAllHandlersFinished() { pending_responses.clear(); } -} // namespace Network::ArticBase \ No newline at end of file +} // namespace Network::ArticBase