summaryrefslogtreecommitdiff
path: root/kernel/proc.c
diff options
context:
space:
mode:
authorFrans Kaashoek <[email protected]>2022-08-11 07:23:17 -0400
committerFrans Kaashoek <[email protected]>2022-08-11 07:23:17 -0400
commit975f3b31d3fac2c271df3107263df6ae454a98be (patch)
tree2bdd49745154445f12404aa7b2424ed5d86a5c13 /kernel/proc.c
parent4087a6e7fc773ba4eb217dfc196dfe1eee84b25d (diff)
downloadxv6-labs-975f3b31d3fac2c271df3107263df6ae454a98be.tar.gz
xv6-labs-975f3b31d3fac2c271df3107263df6ae454a98be.tar.bz2
xv6-labs-975f3b31d3fac2c271df3107263df6ae454a98be.zip
Clean up using killed()
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.