summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2022-12-04 16:18:47 -0500
committerZubin Duggal <zubin.duggal@gmail.com>2023-02-08 19:05:11 +0530
commit764145d7e2689247084f99211229df4b1097ae1f (patch)
treef5d257f9c0a03eaa78cbea47f3500847ebbb3b88
parent639329fecd5fa7c91ff6adbc4ab85f83538511f9 (diff)
downloadhaskell-764145d7e2689247084f99211229df4b1097ae1f.tar.gz
nonmoving: Add missing no-op in busy-wait loop
(cherry picked from commit 9f931a8801c84b8ae473f91349e144eebc73b415)
-rw-r--r--rts/sm/NonMovingMark.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/rts/sm/NonMovingMark.c b/rts/sm/NonMovingMark.c
index 5fe76f3e6f..2b1b9c7d68 100644
--- a/rts/sm/NonMovingMark.c
+++ b/rts/sm/NonMovingMark.c
@@ -1310,8 +1310,11 @@ mark_closure (MarkQueue *queue, const StgClosure *p0, StgClosure **origin)
goto done;
case WHITEHOLE:
- while (*(StgInfoTable* volatile*) &p->header.info == &stg_WHITEHOLE_info);
- // busy_wait_nop(); // FIXME
+ while (*(StgInfoTable* volatile*) &p->header.info == &stg_WHITEHOLE_info)
+#if defined(PARALLEL_GC)
+ busy_wait_nop()
+#endif
+ ;
goto try_again;
default: