{"thread":{"id":"23333","subject":"[PATCH] wrapper.c: simplify xread() and xwrite()","startedAt":"2010-04-04T22:06:59Z","lastAt":"2010-04-04T22:06:59Z","messageCount":1,"participants":["Tony Finch"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"138563","messageId":"E1NyXy7-0005j7-14@hermes-2.csi.cam.ac.uk","threadId":"23333","inReplyTo":null,"subject":"[PATCH] wrapper.c: simplify xread() and xwrite()","fromName":"Tony Finch","fromEmail":"dot@dotat.at","sentAt":"2010-04-04T22:06:59Z","receivedAt":"2010-04-04T22:06:59Z","isPatch":true,"sender":{"key":"dot@dotat.at","avatar":"https://avatars.githubusercontent.com/u/68429?v=4"},"body":"do/while is more straightforward than while(1)/if/continue/return.\n\nSigned-off-by: Tony Finch <dot@dotat.at>\n---\n wrapper.c |   16 ++++++----------\n 1 files changed, 6 insertions(+), 10 deletions(-)\n\ndiff --git a/wrapper.c b/wrapper.c\nindex 9c71b21..f34f492 100644\n--- a/wrapper.c\n+++ b/wrapper.c\n@@ -116,12 +116,10 @@ void *xmmap(void *start, size_t length,\n ssize_t xread(int fd, void *buf, size_t len)\n {\n \tssize_t nr;\n-\twhile (1) {\n+\tdo {\n \t\tnr = read(fd, buf, len);\n-\t\tif ((nr < 0) && (errno == EAGAIN || errno == EINTR))\n-\t\t\tcontinue;\n-\t\treturn nr;\n-\t}\n+\t} while ((nr < 0) && (errno == EAGAIN || errno == EINTR));\n+\treturn nr;\n }\n \n /*\n@@ -132,12 +130,10 @@ ssize_t xread(int fd, void *buf, size_t len)\n ssize_t xwrite(int fd, const void *buf, size_t len)\n {\n \tssize_t nr;\n-\twhile (1) {\n+\tdo {\n \t\tnr = write(fd, buf, len);\n-\t\tif ((nr < 0) && (errno == EAGAIN || errno == EINTR))\n-\t\t\tcontinue;\n-\t\treturn nr;\n-\t}\n+\t} while ((nr < 0) && (errno == EAGAIN || errno == EINTR));\n+\treturn nr;\n }\n \n ssize_t read_in_full(int fd, void *buf, size_t count)\n-- \n1.6.2.1\n"}]}