projects
/
ghc-hetmet.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
27fcc50
)
wake up the blocked exception queue on ThreadFinished; fixes #2910
author
Simon Marlow
<marlowsd@gmail.com>
Tue, 6 Jan 2009 15:32:54 +0000
(15:32 +0000)
committer
Simon Marlow
<marlowsd@gmail.com>
Tue, 6 Jan 2009 15:32:54 +0000
(15:32 +0000)
rts/Schedule.c
patch
|
blob
|
history
diff --git
a/rts/Schedule.c
b/rts/Schedule.c
index
38e3a3c
..
7c453d7
100644
(file)
--- a/
rts/Schedule.c
+++ b/
rts/Schedule.c
@@
-1402,6
+1402,13
@@
scheduleHandleThreadFinished (Capability *cap STG_UNUSED, Task *task, StgTSO *t)
debugTrace(DEBUG_sched, "--++ thread %lu (%s) finished",
(unsigned long)t->id, whatNext_strs[t->what_next]);
debugTrace(DEBUG_sched, "--++ thread %lu (%s) finished",
(unsigned long)t->id, whatNext_strs[t->what_next]);
+ // blocked exceptions can now complete, even if the thread was in
+ // blocked mode (see #2910). The thread is already marked
+ // ThreadComplete, so any further throwTos will complete
+ // immediately and we don't need to worry about synchronising with
+ // those.
+ awakenBlockedExceptionQueue (cap, t);
+
//
// Check whether the thread that just completed was a bound
// thread, and if so return with the result.
//
// Check whether the thread that just completed was a bound
// thread, and if so return with the result.