Pad Capabilities and Tasks to 64 bytes
[ghc-hetmet.git] / rts / Capability.h
index 779a194..dc0a28e 100644 (file)
@@ -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);