use std::{task::Poll, time::Duration};
use bevy::{app::PanicHandlerPlugin, log::LogPlugin, prelude::*};
use bevy_async_task::{TaskRunner, sleep};
async fn long_task() -> u32 {
sleep(Duration::from_millis(1000)).await;
5
}
fn my_system(mut task_runner: TaskRunner<'_, u32>) {
if task_runner.is_idle() {
task_runner.start(long_task());
info!("Started!");
}
match task_runner.poll() {
Poll::Ready(v) => {
info!("Received {v}");
}
Poll::Pending => {
}
}
}
pub fn main() {
App::new()
.add_plugins((MinimalPlugins, LogPlugin::default(), PanicHandlerPlugin))
.add_systems(Update, my_system)
.run();
}