A perfect example; how does one go from this;
/**
* Check on the specified process. If it is gone, call the maintenance
* function.
* @param pid The process to check.
* @param status The status to pass to the maintenance function.
*/
APR_DECLARE(apr_status_t) apr_proc_other_child_read(apr_proc_t *pid, int
status);
to this?
APR_DECLARE(apr_status_t) apr_proc_other_child_read(apr_proc_t *pid, int status)
{
apr_other_child_rec_t *ocr, *nocr;
for (ocr = other_children; ocr; ocr = nocr) {
nocr = ocr->next;
if (ocr->proc->pid != pid->pid)
continue;
ocr->proc = NULL;
(*ocr->maintenance) (APR_OC_REASON_DEATH, ocr->data, status);
return 0;
}
return APR_CHILD_NOTDONE;
}