aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/error.h
diff options
context:
space:
mode:
authorSverker Eriksson <[email protected]>2016-04-01 20:11:34 +0200
committerSverker Eriksson <[email protected]>2016-04-01 20:11:34 +0200
commitc048886458ce68280ba32647a93a04902c929988 (patch)
tree0f61bf30bef3049ebff71b9e566c256b7d07efd7 /erts/emulator/beam/error.h
parent6d4001de141a00b3bf37b8f7b24c5bde2b4f4015 (diff)
downloadotp-c048886458ce68280ba32647a93a04902c929988.tar.gz
otp-c048886458ce68280ba32647a93a04902c929988.tar.bz2
otp-c048886458ce68280ba32647a93a04902c929988.zip
erts: Fix race for process_flag(trap_exit,true)
and a concurrent exit signal. We now actually guarantee that the process will not die from exit signal *after* the call to process_flag(trap_exit,true) has returned. The race is narrow and probably quite hard to observe even if you manage to provoke it. Has only been confirmed with the help of return trace and a sleep in send_exit_signal(). Solution: Seize status lock to prevent send_exit_signal() from reading an old status (without TRAP_EXIT) and then writing PENDING_EXIT after TRAP_EXIT has been set by process_flag_2().
Diffstat (limited to 'erts/emulator/beam/error.h')
0 files changed, 0 insertions, 0 deletions