
On 10/22/2010 8:12 AM, Ákos Maróy wrote:
actually an asio::buffer object is created in send(), which copies the contents over. this is the same pattern as used in the same sample code quoted above. This is a common error. The asio::buffer simply wraps the memory and
On 10/22/2010 7:53 AM, Ákos Maróy wrote: provides a starting location and size. You still must manage the memory.
http://www.boost.org/doc/libs/1_44_0/doc/html/boost_asio/reference/buffer.ht...
On 22/10/10 17:08, Michael Caisse wrote: thanks for pointing this out. it would be nice to get rid of this wrong pattern in the 'official' example code too :)
The code examples do this correctly. It uses a private data member in the class named data_. The pattern uses bind and shared_from_this in the handlers to ensure lifetime. That is the correct way. You may find my boostcon10 slides useful. Ownership of memory buffers is part of the proactor model. http://www.objectmodelingdesigns.com/boostcon10/ http://www.blip.tv/file/4171562/ michael -- ---------------------------------- Michael Caisse Object Modeling Designs www.objectmodelingdesigns.com