Find and fix any possible concurrency bug in the following program? void handler (int sig) pid t pid; while ((pid - waitpid(-1, NULL, 0)) > 0) /- Reap a zombie chi deletejob(pid): /- Delete the child from tho job list if (errno !- ECHILD) unix_error ("waitpid error"); 10 int main(int argc, char argv) 12 int pid; 13 Signal (SIGCHLD, handler); initjobs (): /- Initialize the job list / 14 15 16 17 while (1) { /- Child proceas if ((pid - Fork()) -- 0) ( 18 19 20 Execve("/bin/date". argv. NULL): /- Parent procenn/ addjob(pid): 1- Add the child to the job lint exit (0):

Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
icon
Related questions
Question

DO NOT COPY FROM OTHER WEBSITES

Upvote guarenteed for a correct and detailed answer. Thank you!

Find and fix any possible concurrency bug in the following program?
void handler(int sig)
pid t pid:
while ((pid - waitpid(-1, NULL, 0)) > 0) / Reap a zombie chi:
deletejob(pid); /- Doloto the child from tho job list/
if (errno !- ECHILD)
unix error ("waitpid error");
10
int main(int argc, char argv)
11
12
int pid;
13
Signal (SIGCHLD, handler);
initjobs (); /- Initiali1ze the job list /
14
15
16
17
while (1) {
/. Child proceas/
if ((pid - Fork ()) -- o) {
Execve ("/bin/date". argv, NULL) :
19
20
21
22
- Parent procens /
addjob(pid); - Add the child to the job liat +/
23
exit (0):
Transcribed Image Text:Find and fix any possible concurrency bug in the following program? void handler(int sig) pid t pid: while ((pid - waitpid(-1, NULL, 0)) > 0) / Reap a zombie chi: deletejob(pid); /- Doloto the child from tho job list/ if (errno !- ECHILD) unix error ("waitpid error"); 10 int main(int argc, char argv) 11 12 int pid; 13 Signal (SIGCHLD, handler); initjobs (); /- Initiali1ze the job list / 14 15 16 17 while (1) { /. Child proceas/ if ((pid - Fork ()) -- o) { Execve ("/bin/date". argv, NULL) : 19 20 21 22 - Parent procens / addjob(pid); - Add the child to the job liat +/ 23 exit (0):
Expert Solution
steps

Step by step

Solved in 3 steps with 1 images

Blurred answer
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY