diff options
author | Lukas Larsson <lukas@erlang.org> | 2022-05-02 08:52:11 +0200 |
---|---|---|
committer | Lukas Larsson <lukas@erlang.org> | 2022-05-02 08:52:11 +0200 |
commit | 8b54dfb3b1b1846181a93693b744ae2f975f3893 (patch) | |
tree | f11b3d9721b65da17f020747c30d629185802640 /erts/emulator/beam/erl_gc.c | |
parent | 913faa5ecc5e960e2f0b8b6cb9888c749945b3c5 (diff) | |
parent | b11371b2a8af5250410bae8d77f112fb30ee1542 (diff) | |
download | erlang-8b54dfb3b1b1846181a93693b744ae2f975f3893.tar.gz |
Merge branch 'maint'
Diffstat (limited to 'erts/emulator/beam/erl_gc.c')
-rw-r--r-- | erts/emulator/beam/erl_gc.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/erts/emulator/beam/erl_gc.c b/erts/emulator/beam/erl_gc.c index 9795008823..de97e95671 100644 --- a/erts/emulator/beam/erl_gc.c +++ b/erts/emulator/beam/erl_gc.c @@ -441,7 +441,7 @@ erts_gc_after_bif_call_lhf(Process* p, ErlHeapFragment *live_hf_end, return result; } - if (p->sig_qs.flags & FS_ON_HEAP_MSGQ) { + if (p->sig_qs.flags & (FS_ON_HEAP_MSGQ|FS_OFF_HEAP_MSGQ_CHNG)) { erts_proc_lock(p, ERTS_PROC_LOCK_MSGQ); erts_proc_sig_fetch(p); erts_proc_unlock(p, ERTS_PROC_LOCK_MSGQ); @@ -882,7 +882,7 @@ int erts_garbage_collect_nobump(Process* p, int need, Eterm* objv, int nobj, int fcalls) { int reds, reds_left; - if (p->sig_qs.flags & FS_ON_HEAP_MSGQ) { + if (p->sig_qs.flags & (FS_ON_HEAP_MSGQ|FS_OFF_HEAP_MSGQ_CHNG)) { erts_proc_lock(p, ERTS_PROC_LOCK_MSGQ); erts_proc_sig_fetch(p); erts_proc_unlock(p, ERTS_PROC_LOCK_MSGQ); @@ -899,7 +899,7 @@ void erts_garbage_collect(Process* p, int need, Eterm* objv, int nobj) { int reds; - if (p->sig_qs.flags & FS_ON_HEAP_MSGQ) { + if (p->sig_qs.flags & (FS_ON_HEAP_MSGQ|FS_OFF_HEAP_MSGQ_CHNG)) { erts_proc_lock(p, ERTS_PROC_LOCK_MSGQ); erts_proc_sig_fetch(p); erts_proc_unlock(p, ERTS_PROC_LOCK_MSGQ); @@ -1119,7 +1119,7 @@ erts_garbage_collect_literals(Process* p, Eterm* literals, p->flags |= F_NEED_FULLSWEEP; - if (p->sig_qs.flags & FS_ON_HEAP_MSGQ) { + if (p->sig_qs.flags & (FS_ON_HEAP_MSGQ|FS_OFF_HEAP_MSGQ_CHNG)) { erts_proc_lock(p, ERTS_PROC_LOCK_MSGQ); erts_proc_sig_fetch(p); erts_proc_unlock(p, ERTS_PROC_LOCK_MSGQ); @@ -2656,7 +2656,7 @@ setup_rootset(Process *p, Eterm *objv, int nobj, Rootset *rootset) */ #ifdef DEBUG - if (p->sig_qs.flags & FS_ON_HEAP_MSGQ) { + if (p->sig_qs.flags & (FS_ON_HEAP_MSGQ|FS_OFF_HEAP_MSGQ_CHNG)) { erts_proc_lock(p, ERTS_PROC_LOCK_MSGQ); /* * Verify that we do not have any messages in the outer |