On Thu, 2015-02-26 at 15:09 -0500, Rafael Schloming wrote: > ... > It sounds like one way or another we need at least some design changes. I > don't think it's workable to have overlapping/close but distinct semantics > for the API on different platforms (e.g. you can move sockets on one > platform but not on another). I'm starting to think we either need one > platform to precisely and fully emulate the semantics of the other > platform, or they both need to implement some interface that is slightly > higher level and can better accommodate the differences.
I may have misremembered, but I think the essential platform difference here is that Windows IOCP really tries to implement a Proactor type of pattern rather than the reactor type of pattern that we are using in Proton. [Proactor is where fundamentally the system calls back a processing function on a thread that you give it] In the qpid implementation I had to effectively make the exposed interface a proactor type interface in all platforms, to bridge the gap. I'm not sure this is workable in a context where the user can supply their own event loop. Andrew