summaryrefslogtreecommitdiff
path: root/rts/Schedule.h
diff options
context:
space:
mode:
authorSimon Marlow <simonmarhaskell@gmail.com>2008-04-16 23:44:46 +0000
committerSimon Marlow <simonmarhaskell@gmail.com>2008-04-16 23:44:46 +0000
commite7987f16175f88daa11f06f25d10161a95f84bc4 (patch)
treeef37f54793292bbfffe0a14969f298470217682b /rts/Schedule.h
parent200c73fdfea734765c48309cc8dcbcf44b69c8c5 (diff)
downloadhaskell-e7987f16175f88daa11f06f25d10161a95f84bc4.tar.gz
Don't look at all the threads before each GC.
We were looking at all the threads for 2 reasons: 1. to catch transactions that might be looping as a result of seeing an inconsistent view of memory. 2. to catch threads with blocked exceptions that are themselves blocked. For (1) we now check for this case whenever a thread yields, and for (2) we catch these threads in the GC itself and send the exceptions after GC (see performPendingThrowTos).
Diffstat (limited to 'rts/Schedule.h')
-rw-r--r--rts/Schedule.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/rts/Schedule.h b/rts/Schedule.h
index 89ac1125fa..59bdb9e999 100644
--- a/rts/Schedule.h
+++ b/rts/Schedule.h
@@ -154,6 +154,7 @@ void interruptStgRts (void);
nat run_queue_len (void);
void resurrectThreads (StgTSO *);
+void performPendingThrowTos (StgTSO *);
void printAllThreads(void);