pub trait TaskControl {
// Required method
fn terminate_task(
&mut self,
reason: TaskTerminateReason,
) -> Result<(), TaskError>;
}Expand description
Trait for controlling process execution.
This trait provides methods to control the lifecycle of a running process, including termination and signal handling.
Required Methods§
Sourcefn terminate_task(
&mut self,
reason: TaskTerminateReason,
) -> Result<(), TaskError>
fn terminate_task( &mut self, reason: TaskTerminateReason, ) -> Result<(), TaskError>
Terminates the task with the specified reason.
§Arguments
reason- The reason for termination
§Returns
Ok(())- If the termination signal was sent successfullyErr(TaskError)- If the task is already finished or termination fails
§Example
use tcrm_task::tasks::control::TaskControl;
use tcrm_task::tasks::event::TaskTerminateReason;
use tcrm_task::tasks::config::TaskConfig;
use tcrm_task::tasks::tokio::executor::TaskExecutor;
use tokio::sync::mpsc;
let config = TaskConfig::new("echo".to_string());
let (tx, _rx) = mpsc::channel(100);
let mut task = TaskExecutor::new(config, tx);
task.terminate_task(TaskTerminateReason::UserRequested)?;