- if (signalType == 10) { // [HGM] kill: if it does not terminate in 3 sec, kill
- signal(SIGALRM, AlarmCallBack);
- alarm(3);
- if(wait((int *) 0) == -1) { // process does not terminate on its own accord
- kill(cp->pid, SIGKILL); // kill it forcefully
- wait((int *) 0); // and wait again
- }
- } else {
- if (signalType) {
- kill(cp->pid, signalType == 9 ? SIGKILL : SIGTERM); // [HGM] kill: use hard kill if so requested
- }
- /* Process is exiting either because of the kill or because of
- a quit command sent by the backend; either way, wait for it to die.
- */
- wait((int *) 0);