
Hi Iain,
Not all platforms have threads. There may even be some that don't supply co-operative multi-tasking.
I'm sure they exist. Can we name any that are important to this design?
Non-blocking calls are akin to polling. A non-blocking read fails if there is no data to read. A non-blocking write fails if there is insufficient space in the queue. If a non-block write succeeds then its behaviour is identical to a blocking write.
An async write queues the request and success or failure is reported sometime later.
At issue here, for me<g>, is that the grouping of objects to select/whatever calls is non-portable. In other words, the select_set class must do many silly things on some platforms to support a bad mixture or too many. So, in my proposal, this is in the realm of internals.
BTW callbacks are just *one* way that async completion can be reported.
Agreed. But don't we have to pick something? ;) Best, Don __________________________________ Do you Yahoo!? Yahoo! Small Business - Try our new resources site! http://smallbusiness.yahoo.com/resources/