wolfgang    2003/10/01 03:49:09 PDT

  Modified files:
    ghc/rts              RtsAPI.c Capability.c Capability.h 
                         Schedule.c Schedule.h Select.c Task.c 
                         Task.h 
  Log:
  Threaded RTS:
  Don't start new worker threads earlier than necessary.
  After this commit, a Haskell program that uses neither forkOS nor forkIO is
  really single-threaded (rather than using two OS threads internally).
  
  Some details:
  Worker threads are now only created when a capability is released, and
  only when
  (there are no worker threads)
        && (there are runnable Haskell threads ||
            there are Haskell threads blocked on IO or threadDelay)
  awaitEvent can now be called from bound thread scheduling loops
  (so that we don't have to create a worker thread just to run awaitEvent)
  
  Revision  Changes    Path
  1.49      +1 -7      fptools/ghc/rts/RtsAPI.c
  1.20      +34 -3     fptools/ghc/rts/Capability.c
  1.12      +1 -0      fptools/ghc/rts/Capability.h
  1.176     +37 -16    fptools/ghc/rts/Schedule.c
  1.40      +6 -5      fptools/ghc/rts/Schedule.h
  1.30      +17 -1     fptools/ghc/rts/Select.c
  1.7       +13 -0     fptools/ghc/rts/Task.c
  1.5       +1 -0      fptools/ghc/rts/Task.h
_______________________________________________
Cvs-ghc mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to