diff options
author | Rickard Green <[email protected]> | 2019-03-06 23:29:18 +0100 |
---|---|---|
committer | Rickard Green <[email protected]> | 2019-03-06 23:29:18 +0100 |
commit | a41fbea767452716c72c08b2fad1ba111157cfde (patch) | |
tree | 72c26dd747cb1d806a768fb23c38098cf7da17b1 /erts/emulator/beam/erl_message.c | |
parent | 328e988b471babd305a15cd0b7ff7a8755c4420b (diff) | |
parent | 42d538f00a393b58d1363d67c9fc875eacb2de8f (diff) | |
download | otp-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.c | 7 |
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); + } } |