
On Mon, 22 Jun 2015 09:47:29 +1000 Nick Coghlan <ncoghlan@gmail.com> wrote:
Or perhaps the fact that those superiors APIs are a PITA. select() and friends may be crude performance-wise (though, strangely, we don't see providers migrating massively to Windows in order to improve I/O throughput), but they are simple to use.
Aye, there's a reason using a smart IDE like Visual Studio, IntelliJ or Eclipse is pretty much essential for both Windows and Java programming. These platforms fall squarely on the "tools maven" side of Oliver Steele's "IDE Divide": http://blog.osteele.com/posts/2004/11/ides/
It's not about using an IDE, it's the more complex and delicate control flow that asynchronous IO (IOCP / Overlapped) imposes compared to non-blocking IO (e.g. select()). Not to mention that lifetime issues are hard to handle safely and generically before Vista (that is, before CancelIOEx(): https://msdn.microsoft.com/en-us/library/windows/desktop/aa363792%28v=3Dv= s.85%29.aspx -- "The CancelIoEx function allows you to cancel requests in threads other than the calling thread. The CancelIo function only cancels requests in the same thread that called the CancelIo function") Regards Antoine.