diff options
author | Rickard Green <[email protected]> | 2016-05-04 14:42:45 +0200 |
---|---|---|
committer | Rickard Green <[email protected]> | 2016-05-04 14:42:45 +0200 |
commit | e7767ed5bd7dd770eab5096e0868701d59d1fa74 (patch) | |
tree | 4c0dda9bda0f3b4f078d713a8037611eb14a03ba /erts/emulator/beam/erl_trace.c | |
parent | 2a9fbb1c76334f0211214a0aee517ec03de0e487 (diff) | |
parent | 19932cade31a7973120eba8db9a3b57b925f674a (diff) | |
download | otp-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.c | 22 |
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++; + } } } |