There are many factors however that can vary from one

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: ked. Figure 8.29 shows the modified SIGCHLD handler. When we run signal2 on our Linux system, it now correctly reaps all of the zombie children: linux> ./signal2 Hello from child 10378 Hello from child 10379 Hello from child 10380 Handler reaped child 10379 Handler reaped child 10378 Handler reaped child 10380 <cr> Parent processing input However, we are not done yet. If we run the signal2 program on a Solaris system, it correctly reaps all of the zombie children. However, now the blocked read system call returns prematurely with an error, before we are able to type in our input on the keyboard: solaris> ./signal2 Hello from child 18906 Hello from child 18907 Hello from child 18908 Handler reaped child 18906 Handler reaped child 18908 8.5. SIGNALS 433 code/ecf/signal2.c 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 #include "csapp.h" void handler2(int sig) { pid_t pid; while ((pid = waitpid(-1, NULL, 0)) > 0) printf("Handler rea...
View Full Document

Ask a homework question - tutors are online