diff options
Diffstat (limited to 'rts/sm/NonMovingSweep.c')
-rw-r--r-- | rts/sm/NonMovingSweep.c | 2 |
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++; |