IO completion port threads and the IO completion port itself - does it only exist on the windows operating system, or on Linux/MacOS and various other Operating Systems, they still exist and are being used?
Asked
Active
Viewed 416 times
1
-
1A quick google search could have answered your question I think: https://stackoverflow.com/q/2794535/7313891 – Laurent Jul 27 '21 at 13:41
-
1You might want to re-think those tags -- this isn't about C#, .NET, async/await, or the thread pool -- it's much more about the OS itself – canton7 Jul 27 '21 at 13:41
1 Answers
2
I/O Completion Ports are a Windows-only API, but the other common platforms do have roughly equivalent functionality when it comes to async I/O.
Linux has epoll and io_uring. BSD/MacOS has kqueue. Windows also has Registered I/O.
The largest difference will be that IOCP has a special thread pooling feature designed to assist a tiny bit with otherwise very inefficient blocking I/O and contention scenarios, while the others leave that for you.

Cory Nelson
- 29,236
- 5
- 72
- 110
-
1Could you slightly expand on the notion of "having blocking-based concurrency limits"? Do you perhaps mean the fact that all IOCP threads block waiting for a signal that an I/O operation has completed? – SpiritBob Jul 27 '21 at 13:51