[git commit] code shrink in check_errors_in_children()

Denys Vlasenko vda.linux at googlemail.com
Thu Feb 28 15:38:25 UTC 2013


commit: http://git.busybox.net/busybox/commit/?id=577235dee826eed86d76b0d4ef866297a20ecd55
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 archival/libarchive/open_transformer.c |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/archival/libarchive/open_transformer.c b/archival/libarchive/open_transformer.c
index dae04aa..4e44a87 100644
--- a/archival/libarchive/open_transformer.c
+++ b/archival/libarchive/open_transformer.c
@@ -34,6 +34,7 @@ void check_errors_in_children(int signo)
 	if (!signo) {
 		/* block waiting for any child */
 		if (wait(&status) < 0)
+//FIXME: check EINTR?
 			return; /* probably there are no children */
 		goto check_status;
 	}
@@ -41,14 +42,18 @@ void check_errors_in_children(int signo)
 	/* Wait for any child without blocking */
 	for (;;) {
 		if (wait_any_nohang(&status) < 0)
+//FIXME: check EINTR?
 			/* wait failed?! I'm confused... */
 			return;
  check_status:
-		if (WIFEXITED(status) && WEXITSTATUS(status) == 0)
+		/*if (WIFEXITED(status) && WEXITSTATUS(status) == 0)*/
+		/* On Linux, the above can be checked simply as: */
+		if (status == 0)
 			/* this child exited with 0 */
 			continue;
-		/* Cannot happen?
-		if (!WIFSIGNALED(status) && !WIFEXITED(status)) ???; */
+		/* Cannot happen:
+		if (!WIFSIGNALED(status) && !WIFEXITED(status)) ???;
+		 */
 		bb_got_signal = 1;
 	}
 }


More information about the busybox-cvs mailing list