1. 02 Nov, 1999 1 commit
  2. 16 Mar, 1999 1 commit
    • simonm's avatar
      [project @ 1999-03-16 13:20:07 by simonm] · 456eca73
      simonm authored
      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.
      456eca73
  3. 27 Jul, 1998 1 commit
  4. 08 Jul, 1998 1 commit
  5. 22 May, 1998 1 commit
  6. 17 Apr, 1998 1 commit
  7. 07 Jan, 1998 1 commit
  8. 19 Dec, 1997 1 commit
  9. 16 Dec, 1997 1 commit
  10. 24 Sep, 1997 1 commit
  11. 05 Sep, 1997 1 commit
  12. 26 Jul, 1997 2 commits
  13. 05 Jul, 1997 1 commit
  14. 20 Jun, 1997 1 commit
  15. 14 Mar, 1997 1 commit