aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/ops.tab
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2017-08-21 06:34:20 +0200
committerBjörn Gustavsson <[email protected]>2017-08-23 05:57:38 +0200
commit7f7905f653170daf8a185636329701486fec4ad8 (patch)
tree1ee6f2fb113851b86da1d844e021b943abca1e4f /erts/emulator/beam/ops.tab
parent231ccd91c27dd51fe0e1da3c4ca0484bfe88a018 (diff)
downloadotp-7f7905f653170daf8a185636329701486fec4ad8.tar.gz
otp-7f7905f653170daf8a185636329701486fec4ad8.tar.bz2
otp-7f7905f653170daf8a185636329701486fec4ad8.zip
Use the wait_timeout_{un}locked_int instructions
The transformations were incorrect.
Diffstat (limited to 'erts/emulator/beam/ops.tab')
-rw-r--r--erts/emulator/beam/ops.tab5
1 files changed, 3 insertions, 2 deletions
diff --git a/erts/emulator/beam/ops.tab b/erts/emulator/beam/ops.tab
index 92e67bb470..955eecd115 100644
--- a/erts/emulator/beam/ops.tab
+++ b/erts/emulator/beam/ops.tab
@@ -382,8 +382,8 @@ label L | wait_timeout Fail Src | smp_already_locked(L) => \
label L | wait_timeout_locked Src Fail
wait_timeout Fail Src => wait_timeout_unlocked Src Fail
-wait_timeout_unlocked Fail Src=aiq => gen_literal_timeout(Fail, Src)
-wait_timeout_locked Fail Src=aiq => gen_literal_timeout_locked(Fail, Src)
+wait_timeout_unlocked Src=aiq Fail => gen_literal_timeout(Fail, Src)
+wait_timeout_locked Src=aiq Fail => gen_literal_timeout_locked(Fail, Src)
label L | wait Fail | smp_already_locked(L) => label L | wait_locked Fail
wait Fail => wait_unlocked Fail
@@ -398,6 +398,7 @@ loop_rec_end f
wait_locked f
wait_unlocked f
+# Note that a timeout value must fit in 32 bits.
wait_timeout_unlocked_int I f
wait_timeout_unlocked s f
wait_timeout_locked_int I f