aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_process.c
diff options
context:
space:
mode:
authorBjörn-Egil Dahlberg <[email protected]>2016-04-21 15:18:16 +0200
committerBjörn-Egil Dahlberg <[email protected]>2016-04-21 15:18:16 +0200
commit5b90345fe0e31c7d97ae41de1c53871c5815f126 (patch)
treeef3a0497426a62e1e310f1f3dd6a15001959d250 /erts/emulator/beam/erl_process.c
parentf2cef11a16d8d5f643cdf913b46042db71bff867 (diff)
downloadotp-5b90345fe0e31c7d97ae41de1c53871c5815f126.tar.gz
otp-5b90345fe0e31c7d97ae41de1c53871c5815f126.tar.bz2
otp-5b90345fe0e31c7d97ae41de1c53871c5815f126.zip
erts: Fix lock-order trace status
Diffstat (limited to 'erts/emulator/beam/erl_process.c')
-rw-r--r--erts/emulator/beam/erl_process.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/erts/emulator/beam/erl_process.c b/erts/emulator/beam/erl_process.c
index 1a66044627..d485affa3b 100644
--- a/erts/emulator/beam/erl_process.c
+++ b/erts/emulator/beam/erl_process.c
@@ -10932,9 +10932,7 @@ erl_create_process(Process* parent, /* Parent of process (default group leader).
INITIALIZE_SHCOPY(info);
#endif
-#ifdef ERTS_SMP
erts_smp_proc_lock(parent, ERTS_PROC_LOCKS_ALL_MINOR);
-#endif
/*
* Check for errors.
@@ -11235,6 +11233,8 @@ erl_create_process(Process* parent, /* Parent of process (default group leader).
* Schedule process for execution.
*/
+ erts_smp_proc_unlock(parent, locks & ERTS_PROC_LOCKS_ALL_MINOR);
+
schedule_process(p, state, 0);
VERBOSE(DEBUG_PROCESSES, ("Created a new process: %T\n",p->common.id));
@@ -11248,6 +11248,7 @@ erl_create_process(Process* parent, /* Parent of process (default group leader).
DTRACE2(process_spawn, process_name, mfa);
}
#endif
+ return res;
error: