pub struct TaskCallbacks {
pub before: fn() -> Option<*const ()>,
pub enter: fn(*const ()) -> *const (),
pub exit: fn(*const ()),
pub after: fn(*const ()),
}Expand description
Callbacks for instrumenting spawned tasks.
Configure a factory returning them with
Builder::task_callbacks or the
task_callbacks argument of #[ntex::main] and #[ntex::test]. The factory
is called once on every thread of the system, when the thread joins it.
They apply when crate::spawn, crate::spawn_detached,
spawn_sendable, crate::rt::spawn, or crate::rt::spawn_detached
wraps a future on a thread of the configured system, including its
arbiters. They do not apply retroactively, to direct
crate::rt::Runtime spawning methods, or on threads without a system.
beforeruns synchronously when the future is wrapped. ReturningNonedisables the remaining callbacks for that future.enterreceives the task’s pointer before each poll and returns a pointer representing the previous context.exitreceives that previous-context pointer after the poll, including when polling unwinds.afterreceives the task’s original pointer when its callback state is dropped, including cancellation before the first poll.
Pointers are opaque to the runtime, which never dereferences them. Keep the
state returned by before valid until after, and the state returned by
enter valid until its matching exit. Callbacks of a thread run only on
that thread and may be called while other tasks are spawned.
Fields§
§before: fn() -> Option<*const ()>Called when a future is wrapped, returns the task’s pointer.
enter: fn(*const ()) -> *const ()Called before each poll, returns the previous context.
exit: fn(*const ())Called after each poll with the value returned by enter.
after: fn(*const ())Called once with the task’s pointer when its callback state is dropped.