use std::{
io,
sync::{
Arc,
atomic::{
AtomicUsize,
Ordering,
},
},
};
use qubit_executor::executor::{
DirectExecutor,
Executor,
};
#[test]
fn test_executor_execute_default_delegates_to_call() {
let executor = DirectExecutor;
let calls = Arc::new(AtomicUsize::new(0));
let calls_for_task = Arc::clone(&calls);
executor
.execute(move || {
calls_for_task.fetch_add(1, Ordering::AcqRel);
Ok::<(), io::Error>(())
})
.expect("direct executor should run the runnable");
assert_eq!(calls.load(Ordering::Acquire), 1);
}