AFIO  v2.00 late alpha
io_service.hpp File Reference

Provides io_service. More...

#include "handle.hpp"
#include <cassert>
#include <deque>
#include <mutex>
#include <csignal>

Classes

class  afio_v2_xxx::io_service
 An asynchronous i/o multiplexer service. More...
 
struct  afio_v2_xxx::io_service::awaitable_post_to_self
 

Namespaces

 afio_v2_xxx
 The AFIO namespace.
 

Macros

#define AFIO_USE_POSIX_AIO   1
 Undefined to autodetect, 1 to use POSIX AIO, 0 to not use. More...
 
#define AFIO_COMPILE_KQUEUES   0
 Undefined to autodetect, 1 to compile in BSD kqueue support, 0 to leave it out.
 
#define AFIO_IO_POST_SIGNAL   (SIGUSR1)
 Undefined to autoset to first free SIGRTMIN if realtime signals available, else SIGUSR1. Only used if AFIO_USE_KQUEUES=0.
 
#define AFIO_HAVE_REALTIME_SIGNALS   0
 Undefined to autodetect. 0 to use non-realtime signals. Note performance in this use case is abysmal.
 

Detailed Description

Provides io_service.

Macro Definition Documentation

◆ AFIO_USE_POSIX_AIO

#define AFIO_USE_POSIX_AIO   1

Undefined to autodetect, 1 to use POSIX AIO, 0 to not use.

Warning
On FreeBSD the AIO kernel module needs to be loaded for POSIX AIO to work. Run as root 'kldload aio' or add 'aio_load=YES' in loader.conf.