When the termination of a child process is observed by reap_kid() it clears the pids[] element by assigning it the invalid pid value (pid_t)-1. However, start_kdc() assumes that the unused pid[[] element value is 0. As a result, each pid[] element's associated child process can only be restarted once since start_kdc() will not be able to locate an unused element. This change alters start_kdc() to initialize all elements of pids[] to (pid_t)-1 and use that as the marker for unused elements. By doing so start_kdc() can properly record child process pids and indefinitely restart child processes as necessary. Change-Id: Ia93c9284ab21289994eca7fc9cf1278be7c00683
31 KiB
31 KiB