Boost C++ Libraries Home Libraries People FAQ More



Default allocation function for handlers.

void * asio_handler_allocate(
    std::size_t size,
    ... );

Asynchronous operations may need to allocate temporary objects. Since asynchronous operations have a handler function object, these temporary objects can be said to be associated with the handler.

Implement asio_handler_allocate and asio_handler_deallocate for your own handlers to provide custom allocation for these temporary objects.

The default implementation of these allocation hooks uses operator new and operator delete.


All temporary objects associated with a handler will be deallocated before the upcall to the handler is performed. This allows the same memory to be reused for a subsequent asynchronous operation initiated by the handler.

class my_handler;

void* asio_handler_allocate(std::size_t size, my_handler* context)
  return ::operator new(size);

void asio_handler_deallocate(void* pointer, std::size_t size,
    my_handler* context)
  ::operator delete(pointer);

Header: boost/asio/handler_alloc_hook.hpp

Convenience header: boost/asio.hpp