pub fn execute_task_with_prerun_result<L, F, R, G>(
locked: &mut Locked<L>,
task_builder: TaskBuilder,
pre_run: F,
task_complete: G,
ptrace_state: Option<PtraceCoreState>,
) -> Result<R, Errno>where
L: LockBefore<TaskRelease>,
F: FnOnce(&mut Locked<Unlocked>, &mut CurrentTask) -> Result<R, Errno> + Send + Sync + 'static,
R: Send + Sync + 'static,
G: FnOnce(Result<ExitStatus, Error>) + Send + Sync + 'static,