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));