diff --git a/servers/pm/forkexit.c b/servers/pm/forkexit.c index 34407f7fe..2e4cff377 100644 --- a/servers/pm/forkexit.c +++ b/servers/pm/forkexit.c @@ -71,9 +71,9 @@ PUBLIC int do_fork() child_nr = (int)(rmc - mproc); /* slot number of the child */ procs_in_use++; *rmc = *rmp; /* copy parent's process slot to child's */ - rmc->mp_parent = who; /* record child's parent */ - rmc->mp_flags &= (IN_USE|SEPARATE); /* inherit only these flags */ + /* inherit only these flags */ + rmc->mp_flags &= (IN_USE|SEPARATE|PRIV_PROC|DONT_SWAP); rmc->mp_child_utime = 0; /* reset administration */ rmc->mp_child_stime = 0; /* reset administration */ diff --git a/servers/pm/signal.c b/servers/pm/signal.c index d8da1e7d9..473d6562c 100644 --- a/servers/pm/signal.c +++ b/servers/pm/signal.c @@ -256,13 +256,12 @@ sigset_t sig_map; id = 0; break; /* broadcast to process group */ case SIGKILL: id = -1; break; /* broadcast to all except INIT */ +#if DEAD_CODE case SIGALRM: - /* Disregard SIGALRM when the target process has not - * requested an alarm. - */ if ((rmp->mp_flags & ALARM_ON) == 0) continue; rmp->mp_flags &= ~ALARM_ON; /* fall through */ +#endif default: id = proc_id; break;