
On Thu, 2005-04-14 at 06:43 -0700, Don G wrote:
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?
I don't know which specifically but it will probably be the RTOS'es such as PSOS, VxWorks, maybe QNX, and Symbian plus maybe others.
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.
Platform select may not be completely portable but the concept is supported across most if not all platforms that I am aware of. Therefore, it is not hard to abstract a standard set of behaviour for C++ and leave the Lib implementation to deal with the differences. Ace call the the Reactor.
BTW callbacks are just *one* way that async completion can be reported.
Agreed. But don't we have to pick something? ;)
Why? aio supports polling, callbacks, and signals. Different users have differing needs and a good Lib will support the different patterns. /ikh