From 99f6745037c32d3cbd16cda94e47c4a43e387668 Mon Sep 17 00:00:00 2001 From: Junkyeong Kim Date: Mon, 30 Oct 2023 15:37:39 +0900 Subject: [PATCH] Add retry when write fail occured When write get -1, if error is EINTR or EAGAIN, try again. Change-Id: I98385a07311e8925358c4ad1038ced2028705387 Signed-off-by: Junkyeong Kim --- src/cbhm.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/cbhm.c b/src/cbhm.c index 8bae588..d578769 100644 --- a/src/cbhm.c +++ b/src/cbhm.c @@ -224,7 +224,14 @@ _data_source_send(void *data, struct wl_data_source *source, const char *mime_ty DBG("[CBHM][SENDING] ====>> fd(%d), len(%d), data(%s)\n", fd, size_ret, buf); while (len_written < size_ret) { ret = write(fd, cur_buf, len_remained); - if (ret == -1) break; + if (ret == -1) { + if (errno == EINTR || errno == EAGAIN) { + continue; + } else { + ERR("[CBHM]_data_source_send : write fail.(%d) %m\n", errno); + break; + } + } cur_buf += ret; len_written += ret; len_remained -= ret; -- 2.7.4