On Fri, 15 Jan 2010 09:59:54 -0400, David Bremner <bremner@unb.ca> wrote: > Is this over/under engineered? I spent roughly as long on the design as > it took me to type :). Maybe the whole session id thing is redundant and > could be done at the socket level. Or, getting more serious about the > whole thing, maybe each queue operation should return an identifier. The asynchronous interface I work with most is MPI. There you get a Request object when the operation is initiated and you can {test,block}{one,some,any,all}, where the latter takes a list of requests. These variants are all useful, but of course they could be implemented as needed. I don't think that being able to support these variants places any particular burden on the design. I believe in performing operations with appropriate granularity, so I wouldn't expect cases where you need to manage thousands of active requests, thus I'm not sure the "session" grouping offers any real benefit. In any case, I'm not in favor of a single global flush. Jed