summaryrefslogtreecommitdiff
path: root/erts/emulator/beam/erl_gc.c
diff options
context:
space:
mode:
authorLukas Larsson <lukas@erlang.org>2022-05-02 08:52:11 +0200
committerLukas Larsson <lukas@erlang.org>2022-05-02 08:52:11 +0200
commit8b54dfb3b1b1846181a93693b744ae2f975f3893 (patch)
treef11b3d9721b65da17f020747c30d629185802640 /erts/emulator/beam/erl_gc.c
parent913faa5ecc5e960e2f0b8b6cb9888c749945b3c5 (diff)
parentb11371b2a8af5250410bae8d77f112fb30ee1542 (diff)
downloaderlang-8b54dfb3b1b1846181a93693b744ae2f975f3893.tar.gz
Merge branch 'maint'
Diffstat (limited to 'erts/emulator/beam/erl_gc.c')
-rw-r--r--erts/emulator/beam/erl_gc.c10
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