aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_thr_progress.c
diff options
context:
space:
mode:
authorRickard Green <[email protected]>2012-12-10 14:49:50 +0100
committerRickard Green <[email protected]>2012-12-10 14:49:50 +0100
commitb9e3557a963471661f3b13da37ba758686192aec (patch)
tree7283946431afbe2946adf655f57b0f7460641928 /erts/emulator/beam/erl_thr_progress.c
parent6027f852217f0014f1892fbbfa45c69e104da652 (diff)
downloadotp-b9e3557a963471661f3b13da37ba758686192aec.tar.gz
otp-b9e3557a963471661f3b13da37ba758686192aec.tar.bz2
otp-b9e3557a963471661f3b13da37ba758686192aec.zip
Fix thread progress management of unmanaged threads
Diffstat (limited to 'erts/emulator/beam/erl_thr_progress.c')
-rw-r--r--erts/emulator/beam/erl_thr_progress.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/erts/emulator/beam/erl_thr_progress.c b/erts/emulator/beam/erl_thr_progress.c
index 3b2f95d43b..9678d7e08b 100644
--- a/erts/emulator/beam/erl_thr_progress.c
+++ b/erts/emulator/beam/erl_thr_progress.c
@@ -475,6 +475,9 @@ erts_thr_progress_init(int no_schedulers, int managed, int unmanaged)
intrnl->misc.data.umrefc_ix.waiting = -1;
erts_atomic32_init_nob(&intrnl->misc.data.umrefc_ix.current, 0);
+ erts_atomic_init_nob(&intrnl->umrefc[0].refc, (erts_aint_t) 0);
+ erts_atomic_init_nob(&intrnl->umrefc[1].refc, (erts_aint_t) 0);
+
intrnl->thr = (ErtsThrPrgrArray *) ptr;
ptr += thr_arr_sz;
for (i = 0; i < managed; i++)