diff options
author | Erlang/OTP <otp@erlang.org> | 2021-09-30 11:49:27 +0200 |
---|---|---|
committer | Erlang/OTP <otp@erlang.org> | 2021-09-30 11:49:27 +0200 |
commit | fc44cb9b8dff4f1ad503cbbfa626ac0fc4802add (patch) | |
tree | 11289369256d0caefab8a3aed1eced8977b72b74 /erts/emulator/beam/emu/msg_instrs.tab | |
parent | bcda2c67198561f5d9a06bd2378dba4c9f1ea5d1 (diff) | |
parent | b87c426ac0033bd01925782f1ea1253cfe17b54a (diff) | |
download | erlang-fc44cb9b8dff4f1ad503cbbfa626ac0fc4802add.tar.gz |
Merge branch 'rickard/receive-bad-timeout-fix/24/OTP-17651' into maint-24
* rickard/receive-bad-timeout-fix/24/OTP-17651:
Ensure valid state when recv mark is inserted into message queue
Restore save pointer on bad timeout value in receive
Diffstat (limited to 'erts/emulator/beam/emu/msg_instrs.tab')
-rw-r--r-- | erts/emulator/beam/emu/msg_instrs.tab | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/erts/emulator/beam/emu/msg_instrs.tab b/erts/emulator/beam/emu/msg_instrs.tab index 690f2f2af5..085cdb34cd 100644 --- a/erts/emulator/beam/emu/msg_instrs.tab +++ b/erts/emulator/beam/emu/msg_instrs.tab @@ -332,6 +332,7 @@ timeout() { TIMEOUT_VALUE() { c_p->freason = EXC_TIMEOUT_VALUE; + erts_msgq_set_save_first(c_p); goto find_func_info; //| -no_next } @@ -399,6 +400,7 @@ wait.src(Src) { } else { /* Wrong time */ erts_proc_unlock(c_p, ERTS_PROC_LOCKS_MSG_RECEIVE); c_p->freason = EXC_TIMEOUT_VALUE; + erts_msgq_set_save_first(c_p); goto find_func_info; } } |