summaryrefslogtreecommitdiff
path: root/kernel/proc.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/proc.c')
-rw-r--r--kernel/proc.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/kernel/proc.c b/kernel/proc.c
index 221f0f8..24680b6 100644
--- a/kernel/proc.c
+++ b/kernel/proc.c
@@ -422,7 +422,7 @@ wait(uint64 addr)
}
// No point waiting if we don't have any children.
- if(!havekids || __sync_add_and_fetch(&p->killed, 0)){
+ if(!havekids || killed(p)){
release(&wait_lock);
return -1;
}
@@ -601,6 +601,12 @@ kill(int pid)
return -1;
}
+int
+killed(struct proc *p)
+{
+ return __sync_add_and_fetch(&p->killed, 0);
+}
+
// Copy to either a user address, or kernel address,
// depending on usr_dst.
// Returns 0 on success, -1 on error.