From 75e754726c70ca1299082d748c2dcbaf1ca3f6e0 Mon Sep 17 00:00:00 2001 From: "Michael I. Bushnell" Date: Thu, 7 Apr 1994 01:00:38 +0000 Subject: Formerly mgt.c.~4~ --- proc/mgt.c | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/proc/mgt.c b/proc/mgt.c index 37d4e43a..067f4ea1 100644 --- a/proc/mgt.c +++ b/proc/mgt.c @@ -460,15 +460,32 @@ new_proc (task_t task) p->p_owner = 0; - if (p->p_pid < 2) + if (p->p_pid == 0) { uid_t foo = 0; p->p_id = make_ids (&foo, 1, &foo, 1); - p->p_parent = 0; + p->p_parent = p; p->p_sib = 0; + p->p_prevsib = &p->p_ochild; + p->p_ochild = p; p->p_loginleader = 1; + p->p_parentset = 1; } + else if (p->p_pid == 1) + { + p->p_id = self_proc->p_id; + p->p_id->i_refcnt++; + p->p_parent = self_proc; + p->p_sib = self_proc->p_ochild; + p->p_prevsib = &self_proc->p_ochild; + if (p->p_sib) + p->p_sib->p_prevsib = &p->p_sib; + self_proc->p_ochild = p; + p->p_loginleader = 1; + p->p_ochild = 0; + p->p_parentset = 1; + } else { p->p_id = &nullids; @@ -483,10 +500,10 @@ new_proc (task_t task) p->p_sib->p_prevsib = &p->p_sib; startup_proc->p_ochild = p; p->p_loginleader = 0; + p->p_ochild = 0; + p->p_parentset = 0; } - p->p_ochild = 0; - if (p->p_pid < 2) boot_setsid (p); else @@ -503,7 +520,6 @@ new_proc (task_t task) p->p_waiting = 0; p->p_traced = 0; p->p_nostopcld = 0; - p->p_parentset = 0; p->p_deadmsg = 0; p->p_checkmsghangs = 0; p->p_msgportwait = 0; -- cgit v1.2.3