aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_process.c
diff options
context:
space:
mode:
authorLukas Larsson <[email protected]>2017-10-12 09:54:44 +0200
committerLukas Larsson <[email protected]>2017-10-12 09:59:51 +0200
commit3ec66701f91eba6a7a12a813b2283c2e733f62c1 (patch)
tree5a99b024e2efc80d46bf2b51ca9c19e1683288e8 /erts/emulator/beam/erl_process.c
parentcdb5529d58d35eee831da3c4ae2329c7d6626f51 (diff)
parentbecaa0972e42bb0ecedae3aeaba5be221a551fa4 (diff)
downloadotp-3ec66701f91eba6a7a12a813b2283c2e733f62c1.tar.gz
otp-3ec66701f91eba6a7a12a813b2283c2e733f62c1.tar.bz2
otp-3ec66701f91eba6a7a12a813b2283c2e733f62c1.zip
Merge branch 'maint'
Conflicts: erts/emulator/beam/beam_bp.c erts/emulator/beam/erl_process.c
Diffstat (limited to 'erts/emulator/beam/erl_process.c')
-rw-r--r--erts/emulator/beam/erl_process.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/erts/emulator/beam/erl_process.c b/erts/emulator/beam/erl_process.c
index 61fdf86a56..3d12b3bc21 100644
--- a/erts/emulator/beam/erl_process.c
+++ b/erts/emulator/beam/erl_process.c
@@ -12476,9 +12476,9 @@ send_exit_signal(Process *c_p, /* current process if and only
if ((state & ERTS_PSFLG_TRAP_EXIT)
&& (reason != am_kill || (flags & ERTS_XSIG_FLG_IGN_KILL))) {
- /* have to release the status lock in order to send the exit message */
- erts_proc_unlock(rp, *rp_locks & ERTS_PROC_LOCKS_XSIG_SEND);
- *rp_locks &= ~ERTS_PROC_LOCKS_XSIG_SEND;
+ /* have to release the status and trace lock in order to send the exit message */
+ erts_proc_unlock(rp, *rp_locks & (ERTS_PROC_LOCKS_XSIG_SEND|ERTS_PROC_LOCK_TRACE));
+ *rp_locks &= ~(ERTS_PROC_LOCKS_XSIG_SEND|ERTS_PROC_LOCK_TRACE);
if (have_seqtrace(token) && token_update)
seq_trace_update_send(token_update);
if (is_value(exit_tuple))