X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;ds=sidebyside;f=rts%2FCapability.h;h=f13afe21174b13c82301de7f2b473801687f3700;hb=4753cf734c79ad196ef4411393a1516465302f71;hp=c50fe7ffab41ef1bcad2412c33d92f3d3e183a5f;hpb=681aad99cb29ce54f72ec2a916fb1aab0fa0fabb;p=ghc-hetmet.git diff --git a/rts/Capability.h b/rts/Capability.h index c50fe7f..f13afe2 100644 --- a/rts/Capability.h +++ b/rts/Capability.h @@ -162,6 +162,9 @@ extern Capability *capabilities; // extern Capability *last_free_capability; +// GC indicator, in scope for the scheduler +extern volatile StgWord waiting_for_gc; + // Acquires a capability at a return point. If *cap is non-NULL, then // this is taken as a preference for the Capability we wish to // acquire. @@ -235,6 +238,11 @@ extern void grabCapability (Capability **pCap); // Free a capability on exit void freeCapability (Capability *cap); +// FOr the GC: +void markSomeCapabilities (evac_fn evac, void *user, nat i0, nat delta); +void markCapabilities (evac_fn evac, void *user); +void traverseSparkQueues (evac_fn evac, void *user); + /* ----------------------------------------------------------------------------- * INLINE functions... private below here * -------------------------------------------------------------------------- */