#![no_std]
#![feature(noop_waker)]
#![feature(thread_local)]
#![feature(slice_ptr_get)]
#![feature(slice_ptr_len)]
#![feature(lazy_cell)]
#[cfg(feature = "std")]
extern crate std;
extern crate alloc;
pub mod buf;
pub mod future;
mod io_uring;
mod op;
mod reactor;
pub mod scope;
mod task;
pub use op::*;
pub use scope::*;
use core::future::Future;
pub fn spawn<F: Future<Output = ()> + 'static>(future: F) {
reactor::Reactor::spawn(&reactor::REACTOR, future);
}
pub fn run() -> lx::Result<()> {
reactor::Reactor::run(&reactor::REACTOR)
}
#[cfg(feature = "std")]
pub(crate) fn freeze() {
loop {
std::thread::park();
}
}
#[cfg(not(feature = "std"))]
pub(crate) fn freeze() {
loop {}
}