aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam
diff options
context:
space:
mode:
authorLukas Larsson <lukas@erlang.org>2016-10-26 12:17:47 +0200
committerLukas Larsson <lukas@erlang.org>2016-10-26 12:17:47 +0200
commit07fef73c1301664d76c04b1261c8f351b44510f6 (patch)
tree8dc4199f0634a8e89f63539e1f16e4fe897e512e /erts/emulator/beam
parent95dd51d198c05ee8e93afd4984a0b306bc1fcdc3 (diff)
parentb001b56e061454f3175d9d9a99e2efb945a696b9 (diff)
downloadotp-07fef73c1301664d76c04b1261c8f351b44510f6.tar.gz
otp-07fef73c1301664d76c04b1261c8f351b44510f6.tar.bz2
otp-07fef73c1301664d76c04b1261c8f351b44510f6.zip
Merge branch 'lukas/erts/tracing/fix_dead_tracer_check/ERL-274/OTP-13928' into maint
* lukas/erts/tracing/fix_dead_tracer_check/ERL-274/OTP-13928: erts: Do tracer liveness check on current tracer
Diffstat (limited to 'erts/emulator/beam')
-rw-r--r--erts/emulator/beam/erl_bif_trace.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/erts/emulator/beam/erl_bif_trace.c b/erts/emulator/beam/erl_bif_trace.c
index 66e5146da0..96275eb228 100644
--- a/erts/emulator/beam/erl_bif_trace.c
+++ b/erts/emulator/beam/erl_bif_trace.c
@@ -512,7 +512,7 @@ start_trace(Process *c_p, ErtsTracer tracer,
&& !ERTS_TRACER_COMPARE(ERTS_TRACER(port), tracer)) {
/* This tracee is already being traced, and not by the
* tracer to be */
- if (erts_is_tracer_enabled(tracer, common)) {
+ if (erts_is_tracer_enabled(ERTS_TRACER(port), common)) {
/* The tracer is still in use */
return 1;
}
@@ -715,8 +715,8 @@ Eterm erts_internal_trace_3(BIF_ALIST_3)
Process* tracee_p = erts_pix2proc(i);
if (! tracee_p)
continue;
- start_trace(p, tracer, &tracee_p->common, on, mask);
- matches++;
+ if (!start_trace(p, tracer, &tracee_p->common, on, mask))
+ matches++;
}
}
if (ports || mods) {
@@ -730,8 +730,8 @@ Eterm erts_internal_trace_3(BIF_ALIST_3)
state = erts_atomic32_read_nob(&tracee_port->state);
if (state & ERTS_PORT_SFLGS_DEAD)
continue;
- start_trace(p, tracer, &tracee_port->common, on, mask);
- matches++;
+ if (!start_trace(p, tracer, &tracee_port->common, on, mask))
+ matches++;
}
}
}