Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
0.5
-
None
-
None
-
Windows, Visual Studio 2008
Description
The C++ unit_tests test suite won't run correctly on Windows. The main issue is that the SocketProxy class, used as a relay between client and broker that can be programmed to drop data or close a connection at an inopportune time, uses the Poller class in a way that's incompatible with the Windows IocpPoller.
The Poller class is used to react to events on the sockets being used, but the SocketProxy class then expects to perform the needed send/recv operations directly on the Socket classes. However, the Windows Poller class reacts to I/O completions, not possibilities, so it's not compatible with the approach taken by SocketProxy.
I tried replacing this with AsynchIO use... too messy and leaky.
I have an approach working that uses select() instead of the Poller. It's portable, even if a bit trickier to use correctly than Poller. Patch forthcoming.