Reserved index field which ensures that any Task derivative can be used with ObjectPool. That comes at minor cost of one unused size_t per Task instance if not needed which is not a problem.
Fiber this task executes in
Assigns the task to a fiber. In most cases you need to use Scheduler.schedule instead.
Suspends execution of this task.
Resumes execution of this task. If task has not been started yet, starts it.
Registers a termination hook that will be executed when the Task is killed.
Unregisters a termination hook that would be executed when the Task is killed.
Forces abnormal termination for the task by throwing special exception instance.
Method that will be run by scheduler when task finishes. Must be overridden by specific task class to reset reusable resources.
Method that must be overridden in actual application/library task classes to provide entry point.
Internal wrapper around this.run() which is used as primary fiber entry point and ensures any uncaught exception propagates to the context that has started this task.
Entry point task that starts up everything else