#include "Task.h"
#include "Sparks.h"
-#pragma GCC visibility push(hidden)
+BEGIN_RTS_PRIVATE
struct Capability_ {
// State required by the STG virtual machine when running Haskell
// 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
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;
cap->context_switch = 1;
}
-#pragma GCC visibility pop
+END_RTS_PRIVATE
#endif /* CAPABILITY_H */