aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_process.c
diff options
context:
space:
mode:
authorIngela Anderton Andin <[email protected]>2014-01-28 11:06:43 +0100
committerIngela Anderton Andin <[email protected]>2014-01-28 11:06:43 +0100
commitbb5b33bd3a7c8cbb97695c00f4b9b0d89121f861 (patch)
tree94dae2ff490c4193df939fc85927ac63af9542e1 /erts/emulator/beam/erl_process.c
parent75bfbe5a61fa1a1dd204fdb21dc4bf7df8e8003d (diff)
parent2b57228dd5993321a217a89dbe601d1e90b18f33 (diff)
downloadotp-bb5b33bd3a7c8cbb97695c00f4b9b0d89121f861.tar.gz
otp-bb5b33bd3a7c8cbb97695c00f4b9b0d89121f861.tar.bz2
otp-bb5b33bd3a7c8cbb97695c00f4b9b0d89121f861.zip
Merge branch 'master' of super:otp
Diffstat (limited to 'erts/emulator/beam/erl_process.c')
-rw-r--r--erts/emulator/beam/erl_process.c19
1 files changed, 7 insertions, 12 deletions
diff --git a/erts/emulator/beam/erl_process.c b/erts/emulator/beam/erl_process.c
index 2f383f4c01..74cd84a998 100644
--- a/erts/emulator/beam/erl_process.c
+++ b/erts/emulator/beam/erl_process.c
@@ -7603,19 +7603,13 @@ Process *schedule(Process *p, int calls)
#ifdef ERTS_SMP
ErtsMigrationPaths *mps;
ErtsMigrationPath *mp;
-
-#ifdef ERTS_SMP
- {
- ErtsProcList *pnd_xtrs = rq->procs.pending_exiters;
- if (erts_proclist_fetch(&pnd_xtrs, NULL)) {
- rq->procs.pending_exiters = NULL;
- erts_smp_runq_unlock(rq);
- handle_pending_exiters(pnd_xtrs);
- erts_smp_runq_lock(rq);
- }
-
+ ErtsProcList *pnd_xtrs = rq->procs.pending_exiters;
+ if (erts_proclist_fetch(&pnd_xtrs, NULL)) {
+ rq->procs.pending_exiters = NULL;
+ erts_smp_runq_unlock(rq);
+ handle_pending_exiters(pnd_xtrs);
+ erts_smp_runq_lock(rq);
}
-#endif
if (rq->check_balance_reds <= 0)
check_balance(rq);
@@ -7702,6 +7696,7 @@ Process *schedule(Process *p, int calls)
flags = ERTS_RUNQ_FLGS_GET_NOB(rq);
if (flags & ERTS_RUNQ_FLG_SUSPENDED) {
non_empty_runq(rq);
+ flags |= ERTS_RUNQ_FLG_NONEMPTY;
goto continue_check_activities_to_run_known_flags;
}
}