
22 Dec
2005
22 Dec
'05
9:53 p.m.
So in summary, I think proactor is the most portable choice because it can be efficiently implemented in terms of a reactor, but can use native asynchronous I/O when that is more efficient, or indeed the only viable option.
I just want to add that I think this is the genius of asio compared to other frameworks I've used, and why I am excited about it. For instance libraries like libevent http://www.monkey.org/%7Eprovos/libevent/ do not perform well on Windows because they do reactive I/O using Windows's select(), which was glommed onto the kernel with the BSD TCP/IP code. With proactor there is a good change of ending up with something that performs well on Windows and *nix.