728x90
반응형
io_context::notify_fork
execution_context에서 상속된다.
fork 관련 이벤트를 execution_context에 알린다.
void notify_fork( fork_event event);
이 함수는 프로세스가 fork하려고 하거나, 방금 fork 했음을 execution_context에 알리는 데 사용된다. 이를 통해 execution_context와 여기에 포함된 서비스는 fork 이후에 올바르게 작동하도록 필요한 관리 작업을 수행할 수 있다.
이 함수는 다른 execution_context 함수 또는 execution_context의 파생된 클래스와 연관된 함수가 다른 스레드에서 호출되는 동안 호출해서는 안된다. 그러나 다른 스레드가 execution_context 또는 파생된 클래스에 접근하지 않는 경우에는 완료 핸들러 내에서 이 함수를 호출하는 것이 안전하다.
파라미터
이 름 | 설 명 |
event | fork 관련 이벤트 |
예 외
이 름 | 설 명 |
boost::system::system_error | 실패를 발생한다. 알림이 실패하면 execution_context 개체는 더 이상 사용되지 않고 소멸되어야 한다. |
예 제
다음 코드는 notify_fork() 함수를 통합하는 방법을 보여준다:
my_execution_context.notify_fork(execution_context::fork_prepare); if (fork() == 0) { // This is the child process. my_execution_context.notify_fork(execution_context::fork_child); } else { // This is the parent process. my_execution_context.notify_fork(execution_context::fork_parent); }
참 고
execution_context 집합내에 각 서비스 개체 svc에 대해 svc->notify_fork();를 수행한다. fork_prepare 이벤트를 처리하는 경우, 서비스 개체 수명 시작의 역순으로 서비스를 방문한다. 다른 경우는 서비스 개체 수명 시작순으로 서비스를 방문한다.
Boost.Asio 홈
728x90
반응형
'Boost C++ Libraries > Boost.Asio' 카테고리의 다른 글
Boost.Asio 색인 - thread_pool::notify_fork (0) | 2021.02.12 |
---|---|
Boost.Asio 색인 - system_context::notify_fork (0) | 2021.02.12 |
Boost.Asio 색인 - execution_context::service::notify_fork (0) | 2021.02.12 |
Boost.Asio 색인 - execution_context::notify_fork (0) | 2021.02.12 |
Boost.Asio 색인 - posix::basic_stream_descriptor::non_blocking (0) | 2021.02.12 |