
Hi Aaron (Rabid Dog?), Read your post with interest. An observation relating to the outlined architecture follows. The demultiplexor that requires all waitable services to expose their handles (sounds positively pornographic); does it have to be that way? In the work by D. Schmidt (already referenced by J. Garland) that describes Active Objects there is an object (i.e. instance of a particular class) that is pretty much equivalent to a thread. There may be a variety of these objects (instances of types derived from a common base "thread" class) in a running process. Each Active Object Scheduler (AKA demultiplexor or reactor) waits on 1 or more waitable services and translates the related events into a generic event that may be routed anywhere in the process. If a Scheduler is created around a troublesome waitable service (i.e. one that refuses to expose its handles), doesnt this achieve the uniformity across asynchronous activity that you are pursuing? Cheers, Scott