
Peter Dimov wrote:
Iain Hanson wrote:> I'm not sure that you can beat the library from the client side with respect to the number of memory allocations. With N asynchronous reads active you need to keep N buffers alive. The library can manage with just one in the select case.
Should several pending reads be allowed? I have leaned back and forth on this issue in a previous platform specific async com library I wrote. Actually I ended up supporting several pending reads with user supplied buffers, but the actual clients never have or had reason to have more than one pending read.
and be a source of runtime errors as a result a user not copying the buffer and trying to use it after its lifetime expired.
I'm fairly confident that manual buffer management will introduce even more runtime errors. ;-) (That's been my experience with async reads/writes, at least.)
Do you have any preferences as wheter to use basic_streambuf or not as the buffer interface? /Michel