Boost C++ Libraries/Boost.Asio

Boost.Asio 색인 - io_context::~io_context

까마귀75 2020. 12. 30. 10:37
728x90
반응형

io_context::~io_context

소멸자(destructor).

~io_context();


소멸 시 io_context는 다음과 같은 일련의 작업을 수행한다:

  • io_context 집합 내에 각 서비스 개체 svc에 대해, 서비스 개체 생명주기 시작의 역순으로 svc->shutdown()을 수행한다.
  • io_context 또는 관련 스트랜드(strand)에서 지연된 호출을 위해 예약된 호출되지 않은 핸들러 개체가 삭제된다.
  • io_context 집합 내에 각 서비스 개체 svc에 대해, 서비스 개체 생명주기 시작의 역순으로 delete static_cast<io_context::service*>(svc)를 수행한다.

비고

위에서 설명한 소멸 시퀀스를 통해 프로그램은 shared_ptr<>를 사용하여 리소스 관리를 단순화할 수 있다. 개체의 생명주기가 연결(connection)의 생명주기(또는 다른 비동기 작업 시퀀스)와 결합되어 있는 경우, 개체에 대한 shared_ptr은 관련된 모든 비동기 작업에 대한 핸들러에 바인딩된다. 이 작업은 다음과 같다:

  • 단일 연결이 종료되면, 관련된 모든 비동기 작업이 완료된다. 해당 핸들러 개체가 소멸(파괴)되고, 개체에 대한 모든 shared_ptr 참조가 소멸(파괴)된다.
  • 전체 프로그램을 종료하려면, io_context의 함수 stop()을 호출하여 가능한 빨리 모든 run() 호출을 종료한다. 위에 정의된 io_context 소멸자(destructor)는 모든 핸들러를 소멸(파괴)하여, 모든 연결 개체에 대한 모든 shared_ptr 참조를 소멸(파괴)한다.


Boost.Asio 홈

728x90
반응형