diff options
Diffstat (limited to 'rts/sm/Storage.c')
-rw-r--r-- | rts/sm/Storage.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/rts/sm/Storage.c b/rts/sm/Storage.c index db0299c503..702c246717 100644 --- a/rts/sm/Storage.c +++ b/rts/sm/Storage.c @@ -846,11 +846,11 @@ void dirty_TSO (Capability *cap, StgTSO *tso) { bdescr *bd; - if ((tso->flags & TSO_DIRTY) == 0) { - tso->flags |= TSO_DIRTY; + if ((tso->flags & (TSO_DIRTY|TSO_LINK_DIRTY)) == 0) { bd = Bdescr((StgPtr)tso); if (bd->gen_no > 0) recordMutableCap((StgClosure*)tso,cap,bd->gen_no); } + tso->flags |= TSO_DIRTY; } /* |