Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
When the master process receives SIGINT, it shall recycle all children and then exit. If the signal is recieved while waitpid() in reap_child() is executed, waitpid() returns 0, the child exit status is not consumed and the centry is not updated. Later on, the janitor utilizes 100% the CPU by iterating over its slots, to see if the process, whose centry was not updated, is in the meantime terminated. The child is in fact terminated, but due the interruption of waitpid() the master process never updates its internal status for the child.
- Loading branch information