[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-trivial] [PATCH v2 5/7] tests: Avoid 'do/while(false); ' in vhost-
From: |
Eric Blake |
Subject: |
[Qemu-trivial] [PATCH v2 5/7] tests: Avoid 'do/while(false); ' in vhost-user-bridge |
Date: |
Fri, 1 Dec 2017 17:24:31 -0600 |
Use of a do/while(0) loop as a way to allow break statements in
the middle of execute-once code is unusual. More typical is
the use of goto for early exits, with a label at the end of
the execute-once code, rather than nesting code in a scope;
however, the comment at the end of the existing code makes this
alternative a bit unpractical.
So, to avoid false positives from a future syntax check about
'while (false);', and to keep the loop form (in case someone
ever does add DONTWAIT support, where they can just as easily
manipulate the initial loop condition or add an if around the
final 'break'), I opted to use the form of a while(1) loop (the
break as an early exit is more idiomatic there), coupled with
a final break preserving the original comment.
Signed-off-by: Eric Blake <address@hidden>
---
tests/vhost-user-bridge.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/tests/vhost-user-bridge.c b/tests/vhost-user-bridge.c
index d820033a72..e0605a529e 100644
--- a/tests/vhost-user-bridge.c
+++ b/tests/vhost-user-bridge.c
@@ -283,7 +283,7 @@ vubr_backend_recv_cb(int sock, void *ctx)
return;
}
- do {
+ while (1) {
struct iovec *sg;
ssize_t ret, total = 0;
unsigned int num;
@@ -343,7 +343,9 @@ vubr_backend_recv_cb(int sock, void *ctx)
free(elem);
elem = NULL;
- } while (false); /* could loop if DONTWAIT worked? */
+
+ break; /* could loop if DONTWAIT worked? */
+ }
if (mhdr_cnt) {
mhdr.num_buffers = i;
--
2.14.3
- [Qemu-trivial] [PATCH v2 0/7] macro do/while (0) cleanup, Eric Blake, 2017/12/01
- [Qemu-trivial] [PATCH v2 1/7] net: Drop unusual use of do { } while (0);, Eric Blake, 2017/12/01
- [Qemu-trivial] [PATCH v2 4/7] chardev: Clean up previous patch indentation, Eric Blake, 2017/12/01
- [Qemu-trivial] [PATCH v2 2/7] mips: Tweak location of '; ' in macros, Eric Blake, 2017/12/01
- [Qemu-trivial] [PATCH v2 5/7] tests: Avoid 'do/while(false); ' in vhost-user-bridge,
Eric Blake <=
- [Qemu-trivial] [PATCH v2 3/7] chardev: Use goto/label instead of do/break/while(0), Eric Blake, 2017/12/01
- [Qemu-trivial] [PATCH v2 7/7] checkpatch: Enforce proper do/while (0) style, Eric Blake, 2017/12/01
- [Qemu-trivial] [PATCH v2 6/7] maint: Fix macros with broken 'do/while(0); ' usage, Eric Blake, 2017/12/01