X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FCapability.h;h=35b920321bf19a553f24b9e5299f83fd91df4cd0;hb=40d0595755c28294233dde78874f49a9b4d91e9a;hp=fb199e2a3e32882d2a57f18b4e7f4eaa37eec3a2;hpb=a2a67cd520b9841114d69a87a423dabcb3b4368e;p=ghc-hetmet.git diff --git a/rts/Capability.h b/rts/Capability.h index fb199e2..35b9203 100644 --- a/rts/Capability.h +++ b/rts/Capability.h @@ -22,6 +22,8 @@ #include "Task.h" #include "Sparks.h" +BEGIN_RTS_PRIVATE + struct Capability_ { // State required by the STG virtual machine when running Haskell // code. During STG execution, the BaseReg register always points @@ -41,9 +43,6 @@ struct Capability_ { // catching unsafe call-ins. rtsBool in_haskell; - // true if this Capability is currently in the GC - rtsBool in_gc; - // The run queue. The Task owning this Capability has exclusive // access to its run queue, so can wake up threads without // taking a lock, and the common path through the scheduler is @@ -67,6 +66,9 @@ struct Capability_ { bdescr **mut_lists; bdescr **saved_mut_lists; // tmp use during GC + // block for allocating pinned objects into + bdescr *pinned_object_block; + // Context switch flag. We used to have one global flag, now one // per capability. Locks required : none (conflicts are harmless) int context_switch; @@ -330,4 +332,6 @@ contextSwitchCapability (Capability *cap) cap->context_switch = 1; } +END_RTS_PRIVATE + #endif /* CAPABILITY_H */