X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=rts%2FCapability.h;h=d580a8383d4bd8611ae6b984d37fe5f51822c957;hp=a32062a27fe2f39ffaa5ad65d06b965da2c3b020;hb=cf5905ea24904cf73a041fd7535e8723a668cb9a;hpb=51b85031ce99f1e9d4c72249d6d85672188f0fbd diff --git a/rts/Capability.h b/rts/Capability.h index a32062a..d580a83 100644 --- a/rts/Capability.h +++ b/rts/Capability.h @@ -79,6 +79,7 @@ struct Capability_ { #if defined(THREADED_RTS) // Worker Tasks waiting in the wings. Singly-linked. Task *spare_workers; + nat n_spare_workers; // count of above // This lock protects running_task, returning_tasks_{hd,tl}, wakeup_queue. Mutex lock; @@ -98,8 +99,10 @@ struct Capability_ { // Stats on spark creation/conversion nat sparks_created; + nat sparks_dud; nat sparks_converted; - nat sparks_pruned; + nat sparks_gcd; + nat sparks_fizzled; #endif // Per-capability STM-related data @@ -275,9 +278,11 @@ INLINE_HEADER void contextSwitchCapability(Capability *cap); void freeCapabilities (void); // For the GC: -void markSomeCapabilities (evac_fn evac, void *user, nat i0, nat delta, - rtsBool no_mark_sparks); +void markCapability (evac_fn evac, void *user, Capability *cap, + rtsBool no_mark_sparks USED_IF_THREADS); + void markCapabilities (evac_fn evac, void *user); + void traverseSparkQueues (evac_fn evac, void *user); /* -----------------------------------------------------------------------------