#endif
}; // typedef Capability, defined in RtsAPI.h
+
+// These properties should be true when a Task is holding a Capability
+#define ASSERT_CAPABILITY_INVARIANTS(cap,task) \
+ ASSERT(cap->running_task != NULL && cap->running_task == task); \
+ ASSERT(task->cap == cap); \
+ ASSERT(cap->run_queue_hd == END_TSO_QUEUE ? \
+ cap->run_queue_tl == END_TSO_QUEUE : 1); \
+ ASSERT(myTask() == task); \
+ ASSERT(task->id == osThreadId());
+
+
// Converts a *StgRegTable into a *Capability.
//
INLINE_HEADER Capability *