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
This commit is contained in:
keynote 2026-02-25 21:34:52 +01:00 committed by GitHub
parent 7d19679cc5
commit 03d62efe13
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -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
} // namespace Network::ArticBase