cvs commit: fptools/ghc/rts Capability.c Capability.h Schedule.c

Simon Marlow simonmar at glass.cse.ogi.edu
Tue Dec 16 05:27:33 EST 2003


simonmar    2003/12/16 05:27:33 PST

  Modified files:
    ghc/rts              Capability.c Capability.h Schedule.c 
  Log:
  Clean up Capability API
  ~~~~~~~~~~~~~~~~~~~~~~~
  
  - yieldToReturningWorker() is now yieldCapability(), and performs all
    kinds of yielding (both to returning workers and passing to other
    OS threads).  yieldCapabiltiy() does *not* re-acquire a capability.
  
  - waitForWorkCapabilty() is now waitForCapability().
  
  - releaseCapbility() also releases the capability when passing to
    another OS thread.  It is the only way to release a capability (apart
    from yieldCapability(), which calls releaseCapability() internally).
  
  - passCapability() and passCapabilityToWorker() now do not release the
    capability.  They just set a flag to indicate where the capabiliy
    should go when it it next released.
  
  Other cleanups:
  
    - Removed all the SMP stuff from Schedule.c.  It had extensive bitrot,
      and was just obfuscating the code.  If it is ever needed again,
      it can be resurrected from CVS.
  
    - Removed some other dead code in Schedule.c, in an attempt to make
      this file more manageable.
  
  Revision  Changes    Path
  1.26      +160 -181  fptools/ghc/rts/Capability.c
  1.13      +61 -18    fptools/ghc/rts/Capability.h
  1.183     +68 -553   fptools/ghc/rts/Schedule.c


More information about the Cvs-ghc mailing list