diff options
author | Frans Kaashoek <[email protected]> | 2022-08-11 08:42:52 -0400 |
---|---|---|
committer | Frans Kaashoek <[email protected]> | 2022-08-11 08:42:52 -0400 |
commit | 429c7b717edd4c23d3666327986052b9b6eb29eb (patch) | |
tree | 53d9e4e3a2229d7703e645200dcdcff590da9101 /kernel/proc.c | |
parent | 975f3b31d3fac2c271df3107263df6ae454a98be (diff) | |
download | xv6-labs-429c7b717edd4c23d3666327986052b9b6eb29eb.tar.gz xv6-labs-429c7b717edd4c23d3666327986052b9b6eb29eb.tar.bz2 xv6-labs-429c7b717edd4c23d3666327986052b9b6eb29eb.zip |
Use atomic store_n and load_n
Diffstat (limited to 'kernel/proc.c')
-rw-r--r-- | kernel/proc.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/kernel/proc.c b/kernel/proc.c index 24680b6..b4f8a80 100644 --- a/kernel/proc.c +++ b/kernel/proc.c @@ -588,7 +588,7 @@ kill(int pid) for(p = proc; p < &proc[NPROC]; p++){ acquire(&p->lock); if(p->pid == pid){ - __sync_bool_compare_and_swap(&p->killed, 0, 1); + __atomic_store_n(&p->killed, 1, __ATOMIC_SEQ_CST); if(p->state == SLEEPING){ // Wake process from sleep(). p->state = RUNNABLE; @@ -604,7 +604,7 @@ kill(int pid) int killed(struct proc *p) { - return __sync_add_and_fetch(&p->killed, 0); + return __atomic_load_n(&p->killed, __ATOMIC_SEQ_CST); } // Copy to either a user address, or kernel address, |