simonmar    2005/05/19 06:21:55 PDT

  Modified files:
    ghc/includes         StgMiscClosures.h 
    ghc/rts              HeapStackCheck.cmm PrimOps.cmm Schedule.c 
                         Schedule.h StgStartup.cmm 
  Log:
  - Move the call to threadPaused() from the scheduler into STG land,
    and put it in a new code fragment (stg_returnToSched) that we pass
    through every time we return from STG to the scheduler.  Also, the
    SAVE_THREAD_STATE() is now in stg_returnToSched which might save a
    little code space (at the expense of an extra jump for every return
    to the scheduler).
  
  - SMP: when blocking on an MVar, we now wait until the thread has been
    made fully safe and placed on the blocked queue of the MVar before
    we unlock the MVar.  This closes a race whereby another OS thread could
    begin waking us up before the current TSO had been properly tidied up.
  
  Fixes one cause of crashes when using MVars with SMP.  I still have a
  deadlock problem to track down.
  
  Revision  Changes    Path
  1.61      +2 -1      fptools/ghc/includes/StgMiscClosures.h
  1.13      +31 -6     fptools/ghc/rts/HeapStackCheck.cmm
  1.26      +63 -27    fptools/ghc/rts/PrimOps.cmm
  1.248     +15 -12    fptools/ghc/rts/Schedule.c
  1.55      +2 -0      fptools/ghc/rts/Schedule.h
  1.4       +21 -0     fptools/ghc/rts/StgStartup.cmm
_______________________________________________
Cvs-ghc mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to