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.
Auto Trait Implementations§
impl<R> Freeze for ComputeTask<R>
impl<R> !RefUnwindSafe for ComputeTask<R>
impl<R> Send for ComputeTask<R>
impl<R> !Sync for ComputeTask<R>
impl<R> Unpin for ComputeTask<R>
impl<R> !UnwindSafe for ComputeTask<R>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more