[][src]Crate linux_aio_tokio

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

AtomicLink

Link for intrusive collection, suitable for multi-threaded environments

EventFd

Tokio-aware EventFd implementation

File

AIO version of tokio File, to work through GenericAioContextHandle

GenericAioContext

Represents running AIO context. Must be kept while AIO is in use. In order to close it, close should 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.

GenericAioContextHandle

Cloneable handle to AIO context. Required for any AIO operations

LocalRequestAdapter
LockedBuf

Buffer with fixed capacity, locked to RAM. It prevents memory from being paged to the swap area

NoopLock

An unsafe (non-thread-safe) lock, equivalent to UnsafeCell

ReadFlags

AIO read flags. See io_submit

SyncRequestAdapter
WriteFlags

AIO write flags. See io_submit

Enums

AioCommandError

AIO command error

AioContextError

AIO context creation error

LockedBufError

Error during LockedBuf creation

RawCommand

Raw AIO command

Traits

AioOpenOptionsExt

Extension trait to OpenOptions to support opening files in AIO mode

IntrusiveAdapter

Intrusive adapter suitable for storing Request

Functions

aio_context

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.

generic_aio_context

Create new AIO context with nr number of threads

local_aio_context

Create new AIO context suitable for single-threaded environment (tokio rt-core)

Type Definitions

AioContext

AIO context suitable for cross-threaded environment (tokio rt-threaded), backed by parking_lot Mutex

AioContextHandle

AIO context handle suitable for cross-threaded environment (tokio rt-threaded), backed by parking_lot Mutex

LocalAioContext

AIO context suitable for cross-threaded environment (tokio rt-core)

LocalAioContextHandle

AIO context handle suitable for single-threaded environment (tokio rt-core)