rumtk_resolve_task

Macro rumtk_resolve_task 

Source
macro_rules! rumtk_resolve_task {
    ( $rt:expr, $future:expr ) => { ... };
}
Expand description

This macro awaits a future.

The arguments are a reference to the runtime (`rt) and a future.

If there is a result, you will get the result of the future.

ยงExamples

    use rumtk_core::{rumtk_init_threads, rumtk_resolve_task, rumtk_create_task_args, rumtk_create_task, rumtk_spawn_task};
    use rumtk_core::core::RUMResult;
    use rumtk_core::threading::thread_primitives::SafeTaskArgs;

    async fn test(args: &SafeTaskArgs<i32>) -> RUMResult<Vec<i32>> {
        let mut result = Vec::<i32>::new();
        for arg in args.read().await.iter() {
            result.push(*arg);
        }
        Ok(result)
    }

    let rt = rumtk_init_threads!();
    let args = rumtk_create_task_args!(1);
    let task = rumtk_create_task!(test, args);
    let result = rumtk_resolve_task!(&rt, rumtk_spawn_task!(&rt, task));