projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Handle renames from #3310
[ghc-hetmet.git]
/
rts
/
Schedule.c
diff --git
a/rts/Schedule.c
b/rts/Schedule.c
index
07af0bf
..
05315a5
100644
(file)
--- a/
rts/Schedule.c
+++ b/
rts/Schedule.c
@@
-2667,10
+2667,9
@@
resurrectThreads (StgTSO *threads)
switch (tso->why_blocked) {
case BlockedOnMVar:
switch (tso->why_blocked) {
case BlockedOnMVar:
- case BlockedOnException:
/* Called by GC - sched_mutex lock is currently held. */
throwToSingleThreaded(cap, tso,
/* Called by GC - sched_mutex lock is currently held. */
throwToSingleThreaded(cap, tso,
- (StgClosure *)blockedOnDeadMVar_closure);
+ (StgClosure *)blockedIndefinitelyOnMVar_closure);
break;
case BlockedOnBlackHole:
throwToSingleThreaded(cap, tso,
break;
case BlockedOnBlackHole:
throwToSingleThreaded(cap, tso,
@@
-2678,7
+2677,7
@@
resurrectThreads (StgTSO *threads)
break;
case BlockedOnSTM:
throwToSingleThreaded(cap, tso,
break;
case BlockedOnSTM:
throwToSingleThreaded(cap, tso,
- (StgClosure *)blockedIndefinitely_closure);
+ (StgClosure *)blockedIndefinitelyOnSTM_closure);
break;
case NotBlocked:
/* This might happen if the thread was blocked on a black hole
break;
case NotBlocked:
/* This might happen if the thread was blocked on a black hole
@@
-2686,6
+2685,11
@@
resurrectThreads (StgTSO *threads)
* can wake up threads, remember...).
*/
continue;
* can wake up threads, remember...).
*/
continue;
+ case BlockedOnException:
+ // throwTo should never block indefinitely: if the target
+ // thread dies or completes, throwTo returns.
+ barf("resurrectThreads: thread BlockedOnException");
+ break;
default:
barf("resurrectThreads: thread blocked in a strange way");
}
default:
barf("resurrectThreads: thread blocked in a strange way");
}