From 456eca7317895df8193d83b986352b6238e3824d Mon Sep 17 00:00:00 2001 From: simonm Date: Tue, 16 Mar 1999 13:20:23 +0000 Subject: [project @ 1999-03-16 13:20:07 by simonm] Improvements to the threading model. - asynchronous exceptions supported. - killThread# can now raise an exception in the specified thread. It's new type is killThread# :: ThreadId# -> Exception -> IO () High-level versions: killThread :: ThreadId -> IO () raiseInThread :: ThreadId -> Exception -> IO () (killThread raises a 'ThreadKilled' exception in the specified thread). If the thread has no exception handler, it is killed as before. Otherwise, the exception is passed to the innermost CATCH_FRAME and the thread is woken up if it was blocked. The current computation is suspended, instead of being replaced by the exception (as is the case with throw). Sending an exception to the current thread works too. - new primitive: myThreadId# :: IO ThreadId# and corresponding high-level version myThreadId :: IO ThreadId. - new primitive: yield# :: IO (), and yield :: IO (). - the TSO now contains a pointer to the resource currently blocked on (MVAR or BLACKHOLE_BQ). - Add a giant comment to TSO.h about what the various link fields are supposed to do, and invariants etc. --- ghc/tests/Makefile | 1 + 1 file changed, 1 insertion(+) (limited to 'ghc/tests/Makefile') diff --git a/ghc/tests/Makefile b/ghc/tests/Makefile index e3667e6371..12411c29d7 100644 --- a/ghc/tests/Makefile +++ b/ghc/tests/Makefile @@ -5,6 +5,7 @@ SUBDIRS = \ array \ ccall \ codeGen \ + concurrent \ deSugar \ deriving \ lib \ -- cgit v1.2.1