diff options
author | Sverker Eriksson <sverker@erlang.org> | 2016-02-08 16:41:25 +0100 |
---|---|---|
committer | Sverker Eriksson <sverker@erlang.org> | 2016-02-08 16:41:25 +0100 |
commit | 0540384c6bc28be88b2e6d0c43f5e65974885738 (patch) | |
tree | 10a6e12519f0e3608e19d652dca853d76f9d6840 | |
parent | 98cc6495f768e4d191ac96eff1b2e830cfffd3f2 (diff) | |
parent | 52738d8bee488c262cf514ce4df49e87dfa47bc3 (diff) | |
download | otp-0540384c6bc28be88b2e6d0c43f5e65974885738.tar.gz otp-0540384c6bc28be88b2e6d0c43f5e65974885738.tar.bz2 otp-0540384c6bc28be88b2e6d0c43f5e65974885738.zip |
Merge branch 'sverk/proc-exiting-timer-race/OTP-13245' into maint
* sverk/proc-exiting-timer-race/OTP-13245:
erts: Fix race between receive timeout and exit signal
-rw-r--r-- | erts/emulator/beam/erl_process.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/erts/emulator/beam/erl_process.c b/erts/emulator/beam/erl_process.c index 8fd1b5c0c3..b24f26138c 100644 --- a/erts/emulator/beam/erl_process.c +++ b/erts/emulator/beam/erl_process.c @@ -9699,6 +9699,8 @@ Process *schedule(Process *p, int calls) erts_smp_proc_lock(p, ERTS_PROC_LOCK_MAIN|ERTS_PROC_LOCK_STATUS); + state = erts_smp_atomic32_read_nob(&p->state); + if (erts_sched_stat.enabled) { int prio; UWord old = ERTS_PROC_SCHED_ID(p, |