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-04-14 13:07:39 +0530
commitecf80b17de34048998e734bd236947a0e10f6cef (patch)
treec2e542adaa40835111686d8d9cdc6674da91eaf1
parentfb9caa54edfb4c26358b089105ac21d012130808 (diff)
downloadhaskell-ecf80b17de34048998e734bd236947a0e10f6cef.tar.gz
nonmoving: Add missing no-op in busy-wait loop
(cherry picked from commit ed5443ec9195f27522abf4b2882dbc6b6a9f17f5)
-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 1e29648814..dfebe62ce8 100644
--- a/rts/sm/NonMovingMark.c
+++ b/rts/sm/NonMovingMark.c
@@ -1307,8 +1307,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: