X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FCapability.h;h=dc0a28ea57b8f8c622019ddadb0902d6d3b2dbba;hb=4af25e1a72f2d0f1f523fe5b13c71f1b3dc7a5a5;hp=779a1945a50d9ace8d20e93e03a5664269d2f7e3;hpb=99df892cc9620fcc92747b79bba75dad8a1d295c;p=ghc-hetmet.git diff --git a/rts/Capability.h b/rts/Capability.h index 779a194..dc0a28e 100644 --- a/rts/Capability.h +++ b/rts/Capability.h @@ -106,8 +106,10 @@ struct Capability_ { StgTRecChunk *free_trec_chunks; StgTRecHeader *free_trec_headers; nat transaction_tokens; - -}; // typedef Capability, defined in RtsAPI.h +} // typedef Capability is defined in RtsAPI.h + // Capabilities are stored in an array, so make sure that adjacent + // Capabilities don't share any cache-lines: + ATTRIBUTE_ALIGNED(64); #if defined(THREADED_RTS) @@ -264,7 +266,8 @@ void setContextSwitches(void); void freeCapability (Capability *cap); // FOr the GC: -void markSomeCapabilities (evac_fn evac, void *user, nat i0, nat delta); +void markSomeCapabilities (evac_fn evac, void *user, nat i0, nat delta, + rtsBool prune_sparks); void markCapabilities (evac_fn evac, void *user); void traverseSparkQueues (evac_fn evac, void *user);