pub struct ComputeTask<R> { /* private fields */ }Expand description
A task that can terminate and return its return value. Implemented using an atomically shared mutex.
Sample usage:
use freertos_rs::patterns::compute_task::*;
let task = Task::new().compute(|| {
CurrentTask::delay(Duration::ms(100));
42
}).unwrap();
let result = task.into_result(Duration::ms(1000)).unwrap();Implementations§
Source§impl<R: Debug> ComputeTask<R>
impl<R: Debug> ComputeTask<R>
Sourcepub fn wait_for_result<D: DurationTicks>(
&mut self,
max_wait: D,
) -> Result<(), FreeRtosError>
pub fn wait_for_result<D: DurationTicks>( &mut self, max_wait: D, ) -> Result<(), FreeRtosError>
Wait until the task computes its result. Otherwise, returns a timeout.
Sourcepub fn into_result<D: DurationTicks>(
self,
max_wait: D,
) -> Result<R, FreeRtosError>
pub fn into_result<D: DurationTicks>( self, max_wait: D, ) -> Result<R, FreeRtosError>
Consume the task and unwrap the computed return value.