diff options
author | Simon Marlow <marlowsd@gmail.com> | 2008-11-17 14:45:15 +0000 |
---|---|---|
committer | Simon Marlow <marlowsd@gmail.com> | 2008-11-17 14:45:15 +0000 |
commit | 0fa59deb44b8a1a0b44ee2b4cc4ae0db31dec038 (patch) | |
tree | af9ebb1997ee0520325c21ea2cc4797430155944 /rts/RaiseAsync.h | |
parent | 94bdf8cb5234289267310b1134b5877f31ddada0 (diff) | |
download | haskell-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.h | 5 |
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 |