summary refs log tree commit diff
path: root/src/linux.rs
diff options
context:
space:
mode:
authorDavid Tolnay <dtolnay@chromium.org>2018-12-03 10:46:45 -0800
committerchrome-bot <chrome-bot@chromium.org>2018-12-04 00:11:32 -0800
commitf5032762919ad6fcfd2436abb0ba6ddf73f237d3 (patch)
tree44ef7853049b32866816df6a489b09ce7595f70f /src/linux.rs
parent35bac991e674e8ff228e3da3f05984ff23a535dd (diff)
downloadcrosvm-f5032762919ad6fcfd2436abb0ba6ddf73f237d3.tar
crosvm-f5032762919ad6fcfd2436abb0ba6ddf73f237d3.tar.gz
crosvm-f5032762919ad6fcfd2436abb0ba6ddf73f237d3.tar.bz2
crosvm-f5032762919ad6fcfd2436abb0ba6ddf73f237d3.tar.lz
crosvm-f5032762919ad6fcfd2436abb0ba6ddf73f237d3.tar.xz
crosvm-f5032762919ad6fcfd2436abb0ba6ddf73f237d3.tar.zst
crosvm-f5032762919ad6fcfd2436abb0ba6ddf73f237d3.zip
linux: Print all siginfo structs on ChildSignal
I noticed this questionable loop that never loops in CL:1357700. Purely
guessing as to what it was supposed to do -- I have not tested this
codepath.

TEST=cargo check

Change-Id: I4560b80f080112a78adf440a663341f4fb0f1070
Reviewed-on: https://chromium-review.googlesource.com/1359010
Commit-Ready: David Tolnay <dtolnay@chromium.org>
Tested-by: David Tolnay <dtolnay@chromium.org>
Reviewed-by: Stephen Barber <smbarber@chromium.org>
Diffstat (limited to 'src/linux.rs')
-rw-r--r--src/linux.rs21
1 files changed, 9 insertions, 12 deletions
diff --git a/src/linux.rs b/src/linux.rs
index f50cda5..56ec9ab 100644
--- a/src/linux.rs
+++ b/src/linux.rs
@@ -933,19 +933,16 @@ fn run_control(
                 }
                 Token::ChildSignal => {
                     // Print all available siginfo structs, then exit the loop.
-                    loop {
-                        let result = sigchld_fd.read().map_err(Error::SignalFd)?;
-                        if let Some(siginfo) = result {
-                            error!(
-                                "child {} died: signo {}, status {}, code {}",
-                                siginfo.ssi_pid,
-                                siginfo.ssi_signo,
-                                siginfo.ssi_status,
-                                siginfo.ssi_code
-                            );
-                        }
-                        break 'poll;
+                    while let Some(siginfo) = sigchld_fd.read().map_err(Error::SignalFd)? {
+                        error!(
+                            "child {} died: signo {}, status {}, code {}",
+                            siginfo.ssi_pid,
+                            siginfo.ssi_signo,
+                            siginfo.ssi_status,
+                            siginfo.ssi_code
+                        );
                     }
+                    break 'poll;
                 }
                 Token::CheckAvailableMemory => {
                     // Acknowledge the timer.