summaryrefslogtreecommitdiff
path: root/erts/emulator/beam/emu/msg_instrs.tab
diff options
context:
space:
mode:
authorErlang/OTP <otp@erlang.org>2021-09-30 11:49:27 +0200
committerErlang/OTP <otp@erlang.org>2021-09-30 11:49:27 +0200
commitfc44cb9b8dff4f1ad503cbbfa626ac0fc4802add (patch)
tree11289369256d0caefab8a3aed1eced8977b72b74 /erts/emulator/beam/emu/msg_instrs.tab
parentbcda2c67198561f5d9a06bd2378dba4c9f1ea5d1 (diff)
parentb87c426ac0033bd01925782f1ea1253cfe17b54a (diff)
downloaderlang-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.tab2
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;
}
}