aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_process.c
diff options
context:
space:
mode:
authorErlang/OTP <[email protected]>2017-06-07 15:19:26 +0200
committerErlang/OTP <[email protected]>2017-06-07 15:19:26 +0200
commitc64686a632a550b7c227307ec9af43857c2fd6d9 (patch)
tree5c0972d701fb19f85d6cc567bb4d04e0001cd90c /erts/emulator/beam/erl_process.c
parent4310a9d387999ada6135082961350b6f4324dcb7 (diff)
parent39a41b0472f275e71ae9bb6abf3bb8b3c995b8e3 (diff)
downloadotp-c64686a632a550b7c227307ec9af43857c2fd6d9.tar.gz
otp-c64686a632a550b7c227307ec9af43857c2fd6d9.tar.bz2
otp-c64686a632a550b7c227307ec9af43857c2fd6d9.zip
Merge branch 'rickard/purge-hibernated-19/ERIERL-24/OTP-14444' into maint-19
* rickard/purge-hibernated-19/ERIERL-24/OTP-14444: Update testcase to check that purge handle hibernated process correct Do not GC hibernated process from other processes Fix check_process_code() on hibernated process
Diffstat (limited to 'erts/emulator/beam/erl_process.c')
-rw-r--r--erts/emulator/beam/erl_process.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/erts/emulator/beam/erl_process.c b/erts/emulator/beam/erl_process.c
index 5c0322a7f6..54724fd62d 100644
--- a/erts/emulator/beam/erl_process.c
+++ b/erts/emulator/beam/erl_process.c
@@ -10476,7 +10476,8 @@ execute_sys_tasks(Process *c_p, erts_aint32_t *statep, int in_reds)
reds--;
}
else {
- if (!garbage_collected) {
+ if (!garbage_collected
+ && !(c_p->flags & F_HIBERNATED)) {
FLAGS(c_p) |= F_NEED_FULLSWEEP;
reds -= scheduler_gc_proc(c_p, reds);
garbage_collected = 1;