aboutsummaryrefslogtreecommitdiffstats
path: root/erts/preloaded/ebin/prim_eval.beam
diff options
context:
space:
mode:
authorRickard Green <[email protected]>2017-02-17 15:26:01 +0100
committerRickard Green <[email protected]>2017-02-20 14:40:16 +0100
commit0a144d1fc4bebefcc74b0cb63fe76809bc041789 (patch)
tree164ac556f93f6b2531a9fb168509d58db66c938c /erts/preloaded/ebin/prim_eval.beam
parentaa315e1cf1b79ab782e5b4c944595495ebf4e2f4 (diff)
downloadotp-0a144d1fc4bebefcc74b0cb63fe76809bc041789.tar.gz
otp-0a144d1fc4bebefcc74b0cb63fe76809bc041789.tar.bz2
otp-0a144d1fc4bebefcc74b0cb63fe76809bc041789.zip
Ensure prim_eval:'receive' wont clobber def_arg_reg[0]
def_arg_reg[0] is used for storage of timeout instruction when a 'receive after' is executed. When a process was scheduled out inside prim_eval:'receive'/0 due to a function call, def_arg_reg[0] was overwritten due to storage of live registers. prim_eval:'receive'/2 now calls arg_reg_alloc/0 which bumps all reductions and then calls arg_reg_alloc/7 which will cause an allocation of a new arg_reg array since def_arg_reg only can hold 6 values. This ensures that the timeout instruction in def_arg_reg[0] used for the timeout wont be overwritten.
Diffstat (limited to 'erts/preloaded/ebin/prim_eval.beam')
-rw-r--r--erts/preloaded/ebin/prim_eval.beambin1300 -> 1448 bytes
1 files changed, 0 insertions, 0 deletions
diff --git a/erts/preloaded/ebin/prim_eval.beam b/erts/preloaded/ebin/prim_eval.beam
index a50a628a27..49fd62490e 100644
--- a/erts/preloaded/ebin/prim_eval.beam
+++ b/erts/preloaded/ebin/prim_eval.beam
Binary files differ