
Hi Caleb, --- Caleb Epstein <caleb.epstein@gmail.com> wrote:
Just to clarify one point: asio is portable. It runs on Windows (using I/O completion ports), Linux (via epoll or select), Solaris and *should* work on any other UNIX-like platform that supports select(2). I had to make a couple of very simple changes to get it to compile on OS/X (the gethostby*_r functions don't seem to be available on this platform).
In fact I have a patch for OS/X which should be in asio 0.3.3. However I believe the functions it uses are not guaranteed to be thread-safe until 10.4, so you would only be able to use asio in a single-threaded program for earlier OS/X releases. Basically the approach I have been taking has been to make asio portable first (via select) and then to optimise for each platform. For example, it theoretically supports implementations that use /dev/poll on Solaris and kqueues on on *bsd (including OS/X AFAIK). Cheers, Chris