728x90
반응형
asio_handler_allocate
(더 이상 사용되지 않음: associated_allocator 특성을 사용한다.) 핸들러에 대한 기본 할당 함수이다.
asio_handler_allocate_is_deprecated asio_handler_allocate(
std::size_t size,
... );
비동기 작업은 임시 개체를 할당해야 할 수 있다. 비동기 작업은 핸들러 함수 개체를 가지고 있으므로 이런 임시 개체는 핸들러와 연결어 있다고 말할 수 있다.
이러한 임시 개체에 대한 사용자 지정 할당을 제공하기 위해서 사용자 고유 핸들러에 대한 asio_handler_allocate와 asio_handler_deallocate를 구현한다.
이러한 할당 훅(hook)의 기본 구현에는 연산자 new와 delete를 사용한다.
비고
핸들러에 대한 상향 호출(upcall)이 수행되기 전, 핸들러와 연결된 모든 할당된 임시 개체는 해제될 것이다. 이렇게 하면 핸들러에서 시작된 이후 비동기 작업에 동일한 메모리 영역을 재사용할 수 있다.
예제
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);
}
요구사항
일반 헤더: boost/asio/handler_alloc_hook.hpp
편의 헤더: boost/asio.hpp
Boost.Asio 홈
728x90
반응형
'Boost C++ Libraries > Boost.Asio' 카테고리의 다른 글
Boost.Asio 색인 - asio_handler_invoke (0) | 2021.01.05 |
---|---|
Boost.Asio 색인 - asio_handler_deallocate (0) | 2021.01.05 |
Boost.Asio 색인 - executor_binder::argument_type (0) | 2021.01.05 |
Boost.Asio 색인 - any_io_executor (0) | 2021.01.05 |
Boost.Asio 색인 - execution::any_executor::any_executor (0) | 2021.01.05 |