[project @ 2004-12-08 10:29:01 by simonmar]
authorsimonmar <unknown>
Wed, 8 Dec 2004 10:29:01 +0000 (10:29 +0000)
committersimonmar <unknown>
Wed, 8 Dec 2004 10:29:01 +0000 (10:29 +0000)
deleteThread: don't attempt to delete threads blocked in foreign calls.

ghc/rts/Schedule.c

index 09c4602..ab82e9e 100644 (file)
@@ -3013,7 +3013,10 @@ unblockThread(StgTSO *tso)
 void 
 deleteThread(StgTSO *tso)
 {
-  raiseAsync(tso,NULL);
+  if (tso->why_blocked != BlockedOnCCall &&
+      tso->why_blocked != BlockedOnCCall_NoUnblockExc) {
+      raiseAsync(tso,NULL);
+  }
 }
 
 #ifdef FORKPROCESS_PRIMOP_SUPPORTED