diff options
author | Lukas Larsson <[email protected]> | 2019-03-27 11:13:22 +0100 |
---|---|---|
committer | Lukas Larsson <[email protected]> | 2019-04-09 14:29:10 +0200 |
commit | d1af030aa879cdd907336420f44d488bec30241b (patch) | |
tree | 76a0a74ec8cad2fed95d9d3ee24d202bba3d9b91 | |
parent | 0ded2cd1845020c475126c98b45e14e8c85d50eb (diff) | |
download | otp-d1af030aa879cdd907336420f44d488bec30241b.tar.gz otp-d1af030aa879cdd907336420f44d488bec30241b.tar.bz2 otp-d1af030aa879cdd907336420f44d488bec30241b.zip |
erts: Fix lock order violation in system_info(procs)
-rw-r--r-- | erts/emulator/beam/erl_bif_info.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/erts/emulator/beam/erl_bif_info.c b/erts/emulator/beam/erl_bif_info.c index a7424bbcb8..39d42d9757 100644 --- a/erts/emulator/beam/erl_bif_info.c +++ b/erts/emulator/beam/erl_bif_info.c @@ -2579,6 +2579,7 @@ BIF_RETTYPE system_info_1(BIF_ALIST_1) /* Need to be the only thread running... */ erts_proc_unlock(BIF_P, ERTS_PROC_LOCK_MAIN); + BIF_P->scheduler_data->current_process = NULL; erts_thr_progress_block(); if (BIF_ARG_1 == am_info) @@ -2592,6 +2593,7 @@ BIF_RETTYPE system_info_1(BIF_ALIST_1) erts_thr_progress_unblock(); erts_proc_lock(BIF_P, ERTS_PROC_LOCK_MAIN); + BIF_P->scheduler_data->current_process = BIF_P; ASSERT(dsbufp && dsbufp->str); res = new_binary(BIF_P, (byte *) dsbufp->str, dsbufp->str_len); |