summaryrefslogtreecommitdiff
path: root/rts/sm/NonMovingSweep.c
diff options
context:
space:
mode:
Diffstat (limited to 'rts/sm/NonMovingSweep.c')
-rw-r--r--rts/sm/NonMovingSweep.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/rts/sm/NonMovingSweep.c b/rts/sm/NonMovingSweep.c
index cf5fcd70d7..b390959612 100644
--- a/rts/sm/NonMovingSweep.c
+++ b/rts/sm/NonMovingSweep.c
@@ -307,9 +307,11 @@ static void freeChain_lock_max(bdescr *bd, int max_dur)
freeGroup(bd);
bd = next_bd;
if (i == max_dur) {
+#if defined(THREADED_RTS)
RELEASE_SM_LOCK;
yieldThread();
ACQUIRE_SM_LOCK;
+#endif
i = 0;
}
i++;