|
@@ -124,8 +124,7 @@ static struct proc * proc_create(const char * name)
|
|
|
// My additions
|
|
|
proc->pid =0;
|
|
|
proc->parent = NULL;
|
|
|
- proc->kids = NULL;
|
|
|
-
|
|
|
+
|
|
|
return proc;
|
|
|
}
|
|
|
|
|
@@ -177,6 +176,11 @@ int assignpid(struct proc * proc)
|
|
|
return ENPROC;
|
|
|
}
|
|
|
|
|
|
+void add_child(struct proc * parent, int pid)
|
|
|
+{
|
|
|
+ listsert(parent->kids, pid);
|
|
|
+}
|
|
|
+
|
|
|
/*
|
|
|
static void delete_procs()
|
|
|
{
|
|
@@ -249,6 +253,7 @@ void proc_destroy(struct proc * proc)
|
|
|
lock_acquire(proclock);
|
|
|
processes->pids[proc->pid] = NULL; // update available PIDs
|
|
|
lock_release(proclock);
|
|
|
+ listelete(proc->kids);
|
|
|
kfree(proc->p_name);
|
|
|
kfree(proc);
|
|
|
|