patch applied (ghc): Asynchronous exception support for SMP

Simon Marlow simonmar at microsoft.com
Fri Jun 16 06:37:11 EDT 2006


Fri Jun 16 03:33:42 PDT 2006  Simon Marlow <simonmar at microsoft.com>
  * Asynchronous exception support for SMP
  
  This patch makes throwTo work with -threaded, and also refactors large
  parts of the concurrency support in the RTS to clean things up.  We
  have some new files:
  
    RaiseAsync.{c,h}	asynchronous exception support
    Threads.{c,h}         general threading-related utils
  
  Some of the contents of these new files used to be in Schedule.c,
  which is smaller and cleaner as a result of the split.
  
  Asynchronous exception support in the presence of multiple running
  Haskell threads is rather tricky.  In fact, to my annoyance there are
  still one or two bugs to track down, but the majority of the tests run
  now.

    M ./includes/Constants.h +30
    M ./includes/SMP.h +15
    M ./includes/StgMiscClosures.h +2
    M ./includes/TSO.h -22 +8
    M ./includes/mkDerivedConstants.c +4
    M ./rts/Capability.c -1 +30
    M ./rts/Capability.h +4
    M ./rts/Exception.cmm -97 +85
    R ./rts/Exception.h
    M ./rts/GC.c -4 +11
    M ./rts/GCCompact.c -3 +1
    A ./rts/HCIncludes.h
    M ./rts/HeapStackCheck.cmm +25
    M ./rts/Makefile -20 +1
    A ./rts/RaiseAsync.c
    A ./rts/RaiseAsync.h
    M ./rts/Schedule.c -1560 +86
    M ./rts/Schedule.h -22 +1
    M ./rts/ThreadLabels.c +17
    M ./rts/ThreadLabels.h -15 +9
    A ./rts/Threads.c
    A ./rts/Threads.h
    M ./rts/Trace.h -2 +2


More information about the Cvs-ghc mailing list