summaryrefslogtreecommitdiff
path: root/rts/RaiseAsync.h
diff options
context:
space:
mode:
authorSimon Marlow <marlowsd@gmail.com>2008-11-17 14:45:15 +0000
committerSimon Marlow <marlowsd@gmail.com>2008-11-17 14:45:15 +0000
commit0fa59deb44b8a1a0b44ee2b4cc4ae0db31dec038 (patch)
treeaf9ebb1997ee0520325c21ea2cc4797430155944 /rts/RaiseAsync.h
parent94bdf8cb5234289267310b1134b5877f31ddada0 (diff)
downloadhaskell-0fa59deb44b8a1a0b44ee2b4cc4ae0db31dec038.tar.gz
Fix #2783: detect black-hole loops properly
At some point we regressed on detecting simple black-hole loops. This happened due to the introduction of duplicate-work detection for parallelism: a black-hole loop looks very much like duplicate work, except it's duplicate work being performed by the very same thread. So we have to detect and handle this case.
Diffstat (limited to 'rts/RaiseAsync.h')
-rw-r--r--rts/RaiseAsync.h5
1 files changed, 2 insertions, 3 deletions
diff --git a/rts/RaiseAsync.h b/rts/RaiseAsync.h
index 805281443e..6f7c305d54 100644
--- a/rts/RaiseAsync.h
+++ b/rts/RaiseAsync.h
@@ -20,12 +20,11 @@ void throwToSingleThreaded (Capability *cap,
void throwToSingleThreaded_ (Capability *cap,
StgTSO *tso,
StgClosure *exception,
- rtsBool stop_at_atomically,
- StgPtr stop_here);
+ rtsBool stop_at_atomically);
void suspendComputation (Capability *cap,
StgTSO *tso,
- StgPtr stop_here);
+ StgUpdateFrame *stop_here);
nat throwTo (Capability *cap, // the Capability we hold
StgTSO *source, // the TSO sending the exception