use taskorch::{Pool, Queue, TaskBuildNew, TaskBuildOp};
fn main() {
println!("----- test task orch -----");
let mut pool = Pool::new();
let qid = pool.insert_queue(&Queue::new()).unwrap();
let submitter = pool.task_submitter(qid).unwrap();
submitter.submit((||println!("task free say hello")).task());
let id_exit = submitter.submit(
(
|msg:&str|println!("exit task, recved ({msg:?}) and EXIT"),
1
).exit_task()
);
assert_eq!(id_exit,1);
submitter.submit(
(move||{
let id_exit = &id_exit;
println!("normal pass [\"msg:exit\"] to: task#{id_exit}");
"msg:exit"
}).task().to(id_exit, 0)
);
pool.spawn_thread_for(qid);
pool.join();
}