diff --git a/iocp-links.html b/iocp-links.html index 3a6beb82..c2d828e9 100644 --- a/iocp-links.html +++ b/iocp-links.html @@ -46,15 +46,20 @@ is done in Unix.
Windows presents asynchronous and non-blocking I/O differently than in Unix.
-The syscall select() is available in Windows but it
-supports only 64 file descriptors—which is unacceptable for
-high-concurrency servers. Instead a system called overlapped
- I/O is used. I/O
- completion ports (IOCPs) are the objects used to poll overlapped I/O
-for completion.
-IOCPs are similar to the Unix I/O multiplexers
+The syscall
+select()
+ is available in Windows.
+select processing is O(n) in the number of file descriptors
+unlike the modern constant-time multiplexers like epoll which makes it
+unacceptable for high-concurrency servers.
+
+
+Windows has another way of polling called +I/O completion ports +(IOCPs). IOCPs are the objects used to poll +overlapped I/O +for completion. IOCP polling is constant time (REF?). +They are similar to the Unix I/O multiplexers
sendfile() for windows.
WSADuplicateSocket()
— describes how to share a socket between two processes.
-_setmaxstdio()
+_setmaxstdio()
— something like setting the maximum number of file decriptors
and setrlimit(3)