ASIO will assume ownership of the socket, which means it'll close the
socket when it's destructed. If you don't want this, you have to call
`release()` on it before destructing.
Thanks Martijn! Works for both outcomes now, and on Windows and Linux.
Although the wait times are rather different on Windows and Linux!
Linux adds 0.1ms overhead roughly, vs 20x - 100x that on Windows. --DD
PS: If anyone knows a better way to achieve the objective I outlined, I'd appreciate.
Win64 Debug: Waited 3,184 usec; Waited 107,721 usec
Win64 Release: Waited 2,559 usec; Waited 111,448 usec
Linux64 Release: Waited 132 usec; Waited 100,096 usec
Linux64 Release: Waited 138 usec; Waited 100,101 usec
Linux64 Release: Waited 110 usec; Waited 100,094 usec