X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FSchedule.c;h=e3d025a180c4a62e1b59d7b63fdb83aad5c5d14f;hb=6eb7886a38836b8a6d7445d2003271b4e2125034;hp=70e0246fbec2de0e2ce1e1b06b1f0142690d13c2;hpb=7408b39235bccdcde48df2a73337ff976fbc09b7;p=ghc-hetmet.git diff --git a/rts/Schedule.c b/rts/Schedule.c index 70e0246..e3d025a 100644 --- a/rts/Schedule.c +++ b/rts/Schedule.c @@ -1713,6 +1713,13 @@ forkProcess(HsStablePtr *entry // exception, but we do want to raiseAsync() because these // threads may be evaluating thunks that we need later. deleteThread_(cap,t); + + // stop the GC from updating the InCall to point to + // the TSO. This is only necessary because the + // OSThread bound to the TSO has been killed, and + // won't get a chance to exit in the usual way (see + // also scheduleHandleThreadFinished). + t->bound = NULL; } } }