From 7d673af1a86d9ff0dc7f2c074a97bb8843b69f2d Mon Sep 17 00:00:00 2001 From: Ilho Kim Date: Fri, 19 Apr 2024 14:14:36 +0900 Subject: [PATCH] Fix Receive After returning the EINTR in the first read, even if the read is successful it regarded as the EINTR case and continue loop Change-Id: Ia7cfa4cf60c7131b63d5a782ebf5e2b719e3c6c5 Signed-off-by: Ilho Kim (cherry picked from commit d83c74a93e1c5f77da5a8b3ecd735629af42ccf3) --- src/client-socket-internal.cc | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/client-socket-internal.cc b/src/client-socket-internal.cc index 241e52d..9a71b4e 100644 --- a/src/client-socket-internal.cc +++ b/src/client-socket-internal.cc @@ -115,13 +115,14 @@ int ClientSocket::Receive(void* buf, unsigned int size) { return -EIO; // LCOV_EXCL_STOP } - if (errno == EINTR) { - usleep(100 * 1000); - continue; - } + if (bytes < 0) { + if (errno == EINTR) { + usleep(100 * 1000); + continue; + } - if (bytes < 0) return -errno; // LCOV_EXCL_LINE + } len -= bytes; buffer += bytes; -- 2.7.4