|
Boost : |
From: Peter Dimov (pdimov_at_[hidden])
Date: 2005-04-22 06:23:29
Iain Hanson wrote:
> On Fri, 2005-04-22 at 12:42 +0300, Peter Dimov wrote:
>
> > async_read should not take a buffer; instead, the callback should
> > receive a
> > pointer to a buffer managed by the library that is guaranteed to be
> > valid
> > for the duration of the callback. (Not by default, at least.)
> >
> > async_write (by default) should not assume that the passed buffer stays
> > valid after async_write returns.
> >
> > Rationale: buffer management is a pain with multiple callbacks active
> > ;-)
>
> This would give a significant performance hit as there will now be two
> copies of the data. The 1st from kennel space to the library and the
> second in the callback from the library to the user.
Sometimes, yes, but not always. You don't have to make a copy in the
callback, and for small packets and low bandwidth, the extra copy may not be
significant. Also note the "by default" in the above. I am not against
manual buffer management, just against the absence of automatic buffer
management.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk