[asio] Incorrect reporting of bytes transferred in write handler in 1.54

Is anybody else seeing problems with the bytes_transferred reported to the
write_handler after a successful async_write?
I am seeing a value of zero despite the fact that the peer receives the
bytes and no error is reported to the write_handler.
My example code when built against 1.54 exhibits the problem whereas
building against 1.53 works correctly.
I am running on Windows 7 with MSVC 2010.
A couple of notes:
* I only see the problem when the number of threads is > 1, even though the
handlers are invoked on a strand.
* Defining BOOST_ASIO_DISABLE_IOCP makes everything work properly.
When running my code a failure shows itself like this:
Client: Writing value 85
Server: Received 4 bytes, value 85
Client: bytesWritten = 0
In other words, the client used async_write to send 4 bytes with long value
85 the server. The server received these bytes. The client write_handler
was called with no error but a bytes_transferred value of 0.
Is there something I don't understand or is this a problem introduced in
1.54?
#include

Is anybody else seeing problems with the bytes_transferred reported to the write_handler after a successful async_write?
I am seeing a value of zero despite the fact that the peer receives the bytes and no error is reported to the write_handler.
My example code when built against 1.54 exhibits the problem whereas building against 1.53 works correctly.
It seems to be a "side effect" of the following bug-fix: https://svn.boost.org/trac/boost/ticket/8613 It's worth creating a ticket.
participants (2)
-
Darren
-
Igor R