diff options
author | simonm <unknown> | 1999-03-16 13:20:23 +0000 |
---|---|---|
committer | simonm <unknown> | 1999-03-16 13:20:23 +0000 |
commit | 456eca7317895df8193d83b986352b6238e3824d (patch) | |
tree | 472f298aa443704a85a131de638495e29126a9e3 /ghc/tests/Makefile | |
parent | 8306cc582083d331e5229cfad3c943d8b1588f89 (diff) | |
download | haskell-456eca7317895df8193d83b986352b6238e3824d.tar.gz |
[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.
Diffstat (limited to 'ghc/tests/Makefile')
-rw-r--r-- | ghc/tests/Makefile | 1 |
1 files changed, 1 insertions, 0 deletions
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 \ |