diff options
author | Lukas Larsson <[email protected]> | 2018-12-20 10:10:51 +0100 |
---|---|---|
committer | Lukas Larsson <[email protected]> | 2018-12-20 10:10:51 +0100 |
commit | 58d4bef716136bb1681fcdd0c8502d681ccd9cd3 (patch) | |
tree | fc64c1725937b7967bd1163e9e51cb8b0ea41a1a /erts/emulator/beam/bif.c | |
parent | 9aac178d30c5bad940e68a7eb8a36596df5ed903 (diff) | |
parent | 27ff974bfa155ad31dcdc338d7fecf36b08a0516 (diff) | |
download | otp-58d4bef716136bb1681fcdd0c8502d681ccd9cd3.tar.gz otp-58d4bef716136bb1681fcdd0c8502d681ccd9cd3.tar.bz2 otp-58d4bef716136bb1681fcdd0c8502d681ccd9cd3.zip |
Merge branch 'lukas/erts/fix-seq_trace-reset_trace/OTP-15490' into maint
* lukas/erts/fix-seq_trace-reset_trace/OTP-15490:
erts: Fix seq_trace:reset_trace dirty gc bug
erts: Use sys_memcpy in copy_one_frag
Diffstat (limited to 'erts/emulator/beam/bif.c')
-rw-r--r-- | erts/emulator/beam/bif.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/erts/emulator/beam/bif.c b/erts/emulator/beam/bif.c index 015c051cc1..04498332b0 100644 --- a/erts/emulator/beam/bif.c +++ b/erts/emulator/beam/bif.c @@ -4490,11 +4490,12 @@ BIF_RETTYPE system_flag_2(BIF_ALIST_2) ERTS_TRACER_CLEAR(&old_seq_tracer); BIF_RET(ret); - } else if (BIF_ARG_1 == make_small(1)) { + } else if (BIF_ARG_1 == am_reset_seq_trace) { int i, max; - erts_proc_unlock(BIF_P, ERTS_PROC_LOCK_MAIN); - erts_thr_progress_block(); + erts_proc_unlock(BIF_P, ERTS_PROC_LOCK_MAIN); + erts_thr_progress_block(); + max = erts_ptab_max(&erts_proc); for (i = 0; i < max; i++) { Process *p = erts_pix2proc(i); @@ -4506,13 +4507,14 @@ BIF_RETTYPE system_flag_2(BIF_ALIST_2) #endif p->seq_trace_clock = 0; p->seq_trace_lastcnt = 0; - + erts_proc_lock(p, ERTS_PROC_LOCK_MAIN|ERTS_PROC_LOCK_MSGQ); erts_proc_sig_clear_seq_trace_tokens(p); + erts_proc_unlock(p, ERTS_PROC_LOCK_MAIN|ERTS_PROC_LOCK_MSGQ); } } - erts_thr_progress_unblock(); - erts_proc_lock(BIF_P, ERTS_PROC_LOCK_MAIN); + erts_thr_progress_unblock(); + erts_proc_lock(BIF_P, ERTS_PROC_LOCK_MAIN); BIF_RET(am_true); } else if (BIF_ARG_1 == am_scheduler_wall_time) { |