Many async implementation are still based on thread pools. rust's tokio, node's libuv uses a thread pool for file I/O.
Before io_uring (which is disabled on most servers until it mature), there was no good way to do async I/O on file on Linux.
Many async implementation are still based on thread pools. rust's tokio, node's libuv uses a thread pool for file I/O.
Before io_uring (which is disabled on most servers until it mature), there was no good way to do async I/O on file on Linux.
Sure async might be implemented by threadpools, but the threadpool itself is not what we usually refer to when we talk about async as a language feature.
e.g. Rust async may be backed by a threadpool, but it could also run single threaded.