aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_trace.c
diff options
context:
space:
mode:
authorRickard Green <[email protected]>2016-05-04 14:42:45 +0200
committerRickard Green <[email protected]>2016-05-04 14:42:45 +0200
commite7767ed5bd7dd770eab5096e0868701d59d1fa74 (patch)
tree4c0dda9bda0f3b4f078d713a8037611eb14a03ba /erts/emulator/beam/erl_trace.c
parent2a9fbb1c76334f0211214a0aee517ec03de0e487 (diff)
parent19932cade31a7973120eba8db9a3b57b925f674a (diff)
downloadotp-e7767ed5bd7dd770eab5096e0868701d59d1fa74.tar.gz
otp-e7767ed5bd7dd770eab5096e0868701d59d1fa74.tar.bz2
otp-e7767ed5bd7dd770eab5096e0868701d59d1fa74.zip
Merge branch 'rickard/reds-fix/master/OTP-13512'
* rickard/reds-fix/master/OTP-13512: Ensure correct reduction counting
Diffstat (limited to 'erts/emulator/beam/erl_trace.c')
-rw-r--r--erts/emulator/beam/erl_trace.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/erts/emulator/beam/erl_trace.c b/erts/emulator/beam/erl_trace.c
index 128696270b..436b4aca21 100644
--- a/erts/emulator/beam/erl_trace.c
+++ b/erts/emulator/beam/erl_trace.c
@@ -1322,16 +1322,18 @@ trace_proc_spawn(Process *p, Eterm what, Eterm pid,
void save_calls(Process *p, Export *e)
{
- struct saved_calls *scb = ERTS_PROC_GET_SAVED_CALLS_BUF(p);
- if (scb) {
- Export **ct = &scb->ct[0];
- int len = scb->len;
-
- ct[scb->cur] = e;
- if (++scb->cur >= len)
- scb->cur = 0;
- if (scb->n < len)
- scb->n++;
+ if ((ERTS_TRACE_FLAGS(p) & F_SENSITIVE) == 0) {
+ struct saved_calls *scb = ERTS_PROC_GET_SAVED_CALLS_BUF(p);
+ if (scb) {
+ Export **ct = &scb->ct[0];
+ int len = scb->len;
+
+ ct[scb->cur] = e;
+ if (++scb->cur >= len)
+ scb->cur = 0;
+ if (scb->n < len)
+ scb->n++;
+ }
}
}