cvs commit: fptools/ghc/compiler/compMan CompManager.lhs fptools/ghc/driver PackageSrc.hs fptools/ghc/includes RtsAPI.h fptools/ghc/lib/std PrelIOBase.lhs PrelTopHandler.hs fptools/ghc/rts Main.c Prelude.h RtsAPI.c Schedule.c StgMiscClosures.hc fptools/hslibs/lang/doc ...

Simon Marlow simonmar@glass.cse.ogi.edu
Tue, 22 Jan 2002 05:54:23 -0800


simonmar    2002/01/22 05:54:23 PST

  Modified files:
    ghc/compiler/compMan CompManager.lhs 
    ghc/driver           PackageSrc.hs 
    ghc/includes         RtsAPI.h 
    ghc/lib/std          PrelIOBase.lhs PrelTopHandler.hs 
    ghc/rts              Main.c Prelude.h RtsAPI.c Schedule.c 
                         StgMiscClosures.hc 
    hslibs/lang/doc      Exception.sgml 
    testsuite/tests/ghc-regress/concurrent/should_run all.T 
  Log:
  Deadlock is now an exception instead of a return status from
  rts_evalIO().
  
  The current behaviour is as follows, and can be changed if necessary:
  in the event of a deadlock, the top main thread is taken from the main
  thread queue, and if it is blocked on an MVar or an Exception (for
  throwTo), then it receives a Deadlock exception.  If it is blocked on
  a BLACKHOLE, we instead send it the NonTermination exception.  Note
  that only the main thread gets the exception: it is the responsibility
  of the main thread to unblock other threads if necessary.
  
  There's a slight difference in the SMP build: *all* the main threads
  get an exception, because clearly none of them may make progress
  (compared to the non-SMP situation, where all but the top main thread
  are usually blocked).
  
  Revision  Changes    Path
  1.100     +6 -13     fptools/ghc/compiler/compMan/CompManager.lhs
  1.56      +1 -0      fptools/ghc/driver/PackageSrc.hs
  1.25      +2 -3      fptools/ghc/includes/RtsAPI.h
  1.46      +4 -2      fptools/ghc/lib/std/PrelIOBase.lhs
  1.2       +4 -1      fptools/ghc/lib/std/PrelTopHandler.hs
  1.32      +1 -5      fptools/ghc/rts/Main.c
  1.17      +3 -1      fptools/ghc/rts/Prelude.h
  1.31      +1 -3      fptools/ghc/rts/RtsAPI.c
  1.111     +33 -13    fptools/ghc/rts/Schedule.c
  1.72      +6 -6      fptools/ghc/rts/StgMiscClosures.hc
  1.20      +16 -0     fptools/hslibs/lang/doc/Exception.sgml
  1.8       +2 -0      fptools/testsuite/tests/ghc-regress/concurrent/should_run/all.T