diff options
author | Henrik Nord <[email protected]> | 2011-08-08 15:21:16 +0200 |
---|---|---|
committer | Henrik Nord <[email protected]> | 2011-08-08 15:21:16 +0200 |
commit | fd4e2b1454990ed597591f2fb2d02e8ba17d4dac (patch) | |
tree | 0692f6a0bba5a409b96f36db74fbf9722db00da6 /erts/emulator/hipe/hipe_mode_switch.c | |
parent | d95f24d2d3921461fc1c57f15fbaee7a4f149df4 (diff) | |
parent | c6c4fba873c52d750e13fd335e008f3b44fb6826 (diff) | |
download | otp-fd4e2b1454990ed597591f2fb2d02e8ba17d4dac.tar.gz otp-fd4e2b1454990ed597591f2fb2d02e8ba17d4dac.tar.bz2 otp-fd4e2b1454990ed597591f2fb2d02e8ba17d4dac.zip |
Merge branch 'dev' into major
Diffstat (limited to 'erts/emulator/hipe/hipe_mode_switch.c')
-rw-r--r-- | erts/emulator/hipe/hipe_mode_switch.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/erts/emulator/hipe/hipe_mode_switch.c b/erts/emulator/hipe/hipe_mode_switch.c index 16f8fb1347..e3e8367b62 100644 --- a/erts/emulator/hipe/hipe_mode_switch.c +++ b/erts/emulator/hipe/hipe_mode_switch.c @@ -346,7 +346,12 @@ Process *hipe_mode_switch(Process *p, unsigned cmd, Eterm reg[]) p->arity = callee_arity; } - /* If process is in P_WAITING state, we schedule the next process */ + /* Schedule next process if current process was hibernated or is waiting + for messages */ + if (p->flags & F_HIBERNATE_SCHED) { + p->flags &= ~F_HIBERNATE_SCHED; + goto do_schedule; + } if (p->status == P_WAITING) { goto do_schedule; } |