*
* Tasks
*
+ * For details on the high-level design, see
+ * http://hackage.haskell.org/trac/ghc/wiki/Commentary/Rts/Scheduler
+ *
* -------------------------------------------------------------------------*/
#ifndef TASK_H
#include "GetTime.h"
-BEGIN_RTS_PRIVATE
+#include "BeginPrivate.h"
/*
Definition of a Task
// without owning a Capability in the
// first place.
+ SchedulerStatus stat; // return status
+ StgClosure ** ret; // return value
+
struct Task_ *task;
// When a Haskell thread makes a foreign call that re-enters
rtsBool worker; // == rtsTrue if this is a worker Task
rtsBool stopped; // this task has stopped or exited Haskell
- SchedulerStatus stat; // return status
- StgClosure ** ret; // return value
+ // So that we can detect when a finalizer illegally calls back into Haskell
+ rtsBool running_finalizers;
// Stats that we collect about this task
// ToDo: we probably want to put this in a separate TaskStats
#endif
}
-END_RTS_PRIVATE
+#include "EndPrivate.h"
#endif /* TASK_H */