Multiplexing or async blocking I/O – a quick note

You often hear about powerful multiplexing I/O APIs—the select(2), poll(2), and, more recently, Linux's powerful epoll(7) framework. These APIs, select(2), poll(2), and/or epoll(7), provide what is known as asynchronous blocking I/O. They work well upon descriptors that remain blocked on I/O; examples are sockets, both Unix and internet domain, as well as pipes—both unnamed and named pipes (FIFOs).

These I/O technologies are asynchronous (you can issue the system call and return immediately) but they actually are still blocking in nature because the thread must check for I/O completion, for example, by using the poll(2) in tandem with a read(2) system call, which is still a blocking operation. ...

Get Hands-On System Programming with Linux now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.