I am using boost::asio to create a server application, specifically the UDP APIs. Right now I start multiple threads from a pool listening to separate buffers using async_receive_from. This works great on Ubuntu where I develop mostly.
However, when compiling for windows, my callback gets called many times for each sent buffer, with only one reporting that something was found, the others report that zero bytes were sent.
I have looked at the boost::asio docs, and I know that the write/read free functions must be called serially - but I have been unable to find any information as to whether the same holds for the async_receive_ functions.
Should I simply call async_receive_ once instead?