Skip to content
  • Duncan Coutts's avatar
    Rearrange shutdownCapability code slightly · 68b76e0e
    Duncan Coutts authored
    This is mostly for the beneift of having sensible places to put tracing
    code later. We want a code path that has somewhere to trace (in order):
     (1) starting up all capabilities;
     (2) N * starting up an individual capability;
     (3) N * shutting down an individual capability;
     (4) shutting down all capabilities.
    This has to work in both threaded and non-threaded modes.
    
    Locations (1) and (2) are provided by initCapabilities and
    initCapability respectively. Previously, there was no loccation for (4)
    and while shutdownCapability should be usable for (3) it was only called
    in the !THREADED_RTS case.
    
    Now, shutdownCapability is called unconditionally (and the body is
    conditonal on THREADED_RTS) and there is a new shutdownCapabilities that
    calls shutdownCapability in a loop.
    68b76e0e