aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_message.c
diff options
context:
space:
mode:
authorRickard Green <[email protected]>2019-03-06 23:29:18 +0100
committerRickard Green <[email protected]>2019-03-06 23:29:18 +0100
commita41fbea767452716c72c08b2fad1ba111157cfde (patch)
tree72c26dd747cb1d806a768fb23c38098cf7da17b1 /erts/emulator/beam/erl_message.c
parent328e988b471babd305a15cd0b7ff7a8755c4420b (diff)
parent42d538f00a393b58d1363d67c9fc875eacb2de8f (diff)
downloadotp-a41fbea767452716c72c08b2fad1ba111157cfde.tar.gz
otp-a41fbea767452716c72c08b2fad1ba111157cfde.tar.bz2
otp-a41fbea767452716c72c08b2fad1ba111157cfde.zip
Merge branch 'rickard/send-bump-reds/ERL-773/OTP-15513'
* rickard/send-bump-reds/ERL-773/OTP-15513: Fix faulty assertion Bump reductions on send based on message size
Diffstat (limited to 'erts/emulator/beam/erl_message.c')
-rw-r--r--erts/emulator/beam/erl_message.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/erts/emulator/beam/erl_message.c b/erts/emulator/beam/erl_message.c
index 9d40754d2d..e350a20339 100644
--- a/erts/emulator/beam/erl_message.c
+++ b/erts/emulator/beam/erl_message.c
@@ -776,6 +776,13 @@ erts_send_message(Process* sender,
#endif
erts_queue_proc_message(sender, receiver, *receiver_locks, mp, message);
+
+ if (msize > ERTS_MSG_COPY_WORDS_PER_REDUCTION) {
+ Uint reds = msize / ERTS_MSG_COPY_WORDS_PER_REDUCTION;
+ if (reds > CONTEXT_REDS)
+ reds = CONTEXT_REDS;
+ BUMP_REDS(sender, (int) reds);
+ }
}