1

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?

SpiritBob
  • 1,850
  • 1
  • 15
  • 45
  • 1
    A quick google search could have answered your question I think: https://stackoverflow.com/q/2794535/7313891 – Laurent Jul 27 '21 at 13:41
  • 1
    You 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 Answers1

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 none of these APIs have blocking-based concurrency limits for you like IOCP does.

Cory Nelson
  • 28,108
  • 5
  • 72
  • 106
  • 1
    Could 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