[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 44/52] tests: Avoid 'do/while(false); ' in vhost-user
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PULL 44/52] tests: Avoid 'do/while(false); ' in vhost-user-bridge |
Date: |
Fri, 12 Jan 2018 12:31:08 +0100 |
From: Eric Blake <address@hidden>
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>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <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 d820033..e0605a5 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;
--
1.8.3.1
- [Qemu-devel] [PULL 34/52] target-i386: update hflags on Hypervisor.framework, (continued)
- [Qemu-devel] [PULL 34/52] target-i386: update hflags on Hypervisor.framework, Paolo Bonzini, 2018/01/12
- [Qemu-devel] [PULL 36/52] scripts/qemu-gdb/timers.py: new helper to dump timer state, Paolo Bonzini, 2018/01/12
- [Qemu-devel] [PULL 33/52] target/i386: hax: Move x86_update_hflags., Paolo Bonzini, 2018/01/12
- [Qemu-devel] [PULL 30/52] tests/boot-serial-test: Add support for the raspi2 machine, Paolo Bonzini, 2018/01/12
- [Qemu-devel] [PULL 37/52] icount: fixed saving/restoring of icount warp timers, Paolo Bonzini, 2018/01/12
- [Qemu-devel] [PULL 43/52] chardev: Clean up previous patch indentation, Paolo Bonzini, 2018/01/12
- [Qemu-devel] [PULL 38/52] cpus: unify qemu_*_wait_io_event, Paolo Bonzini, 2018/01/12
- [Qemu-devel] [PULL 39/52] irq: fix memory leak, Paolo Bonzini, 2018/01/12
- [Qemu-devel] [PULL 41/52] mips: Tweak location of ';' in macros, Paolo Bonzini, 2018/01/12
- [Qemu-devel] [PULL 42/52] chardev: Use goto/label instead of do/break/while(0), Paolo Bonzini, 2018/01/12
- [Qemu-devel] [PULL 44/52] tests: Avoid 'do/while(false); ' in vhost-user-bridge,
Paolo Bonzini <=
- [Qemu-devel] [PULL 46/52] checkpatch: Enforce proper do/while (0) style, Paolo Bonzini, 2018/01/12
- [Qemu-devel] [PULL 45/52] maint: Fix macros with broken 'do/while(0); ' usage, Paolo Bonzini, 2018/01/12
- [Qemu-devel] [PULL 40/52] net: Drop unusual use of do { } while (0);, Paolo Bonzini, 2018/01/12
- [Qemu-devel] [PULL 48/52] find_ram_offset: Align ram_addr_t allocation on long boundaries, Paolo Bonzini, 2018/01/12
- [Qemu-devel] [PULL 49/52] block/iscsi: fix initialization of iTask in iscsi_co_get_block_status, Paolo Bonzini, 2018/01/12
- [Qemu-devel] [PULL 50/52] cpu: flush TB cache when loading VMState, Paolo Bonzini, 2018/01/12
- [Qemu-devel] [PULL 52/52] scripts/analyse-locks-simpletrace.py: script to analyse lock times, Paolo Bonzini, 2018/01/12
- [Qemu-devel] [PULL 51/52] util/qemu-thread-*: add qemu_lock, locked and unlock trace events, Paolo Bonzini, 2018/01/12
- [Qemu-devel] [PULL 47/52] find_ram_offset: Add comments and tracing, Paolo Bonzini, 2018/01/12