Expand description
Tokio Bindings for Linux Kernel AIO
This package provides an integration of Linux kernel-level asynchronous I/O to the Tokio platform.
Linux kernel-level asynchronous I/O is different from the Posix AIO library. Posix AIO is implemented using a pool of userland threads, which invoke regular, blocking system calls to perform file I/O. Linux kernel-level AIO, on the other hand, provides kernel-level asynchronous scheduling of I/O operations to the underlying block device.
Structs§
- Link for intrusive collection, suitable for multi-threaded environments
- Tokio-aware EventFd implementation
- AIO version of tokio
File, to work throughGenericAioContextHandle - Represents running AIO context. Must be kept while AIO is in use. In order to close it,
closeshould be called. It will wait until all related futures are finished. Otherwise, if it just dropped, the termination will be triggered, but some running futures will continue running until they receive the data. - Cloneable handle to AIO context. Required for any AIO operations
- Buffer with fixed capacity, locked to RAM. It prevents memory from being paged to the swap area
- An unsafe (non-thread-safe) lock, equivalent to UnsafeCell
- AIO read flags. See
io_submit - AIO write flags. See
io_submit
Enums§
- AIO command error
- AIO context creation error
- Error during
LockedBufcreation - Raw AIO command
Traits§
- Extension trait to
OpenOptionsto support opening files in AIO mode - Intrusive adapter suitable for storing
Request
Functions§
- Create new AIO context suitable for cross-threaded environment (tokio rt-threaded), backed by parking_lot Mutex. Automatically spawn background task, which polls eventfd with
tokio::spawn. - Create new AIO context with
nrnumber of threads - Create new AIO context suitable for single-threaded environment (tokio rt-core)
Type Aliases§
- AIO context suitable for cross-threaded environment (tokio rt-threaded), backed by parking_lot Mutex
- AIO context handle suitable for cross-threaded environment (tokio rt-threaded), backed by parking_lot Mutex
- AIO context suitable for cross-threaded environment (tokio rt-core)
- AIO context handle suitable for single-threaded environment (tokio rt-core)