diff options
Diffstat (limited to 'kernel/proc.c')
-rw-r--r-- | kernel/proc.c | 8 |
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. |