boost asio 정리 - 5 (work 고찰)

Program Lang./C++ 2017. 5. 12. 14:38

1. 목적

이제 마무리 단계에 왔다. 바로 work의 사용법이다. work는 io_service start 전에 post()에 기술된 handler함수가 먼저 종료되는 상황에서 io_service start를 차 후에 호출하더라도 실제 post의 핸들러 함수는 돌지 않는다. 이를 방지 하기 위해서 항상 block되어 돌도록 하기 위해서 사용한다.


2. 코드 설명

아래 코드에서 현재 상태로 코드를 돌리면 아무 동작을 하지 않는다. 비동기 동작과 유사한 동작을 위해서 post에 전달하는 방식을 thread로 변경하였다. 이 부분이 앞의 예제와 변경된 사항이다.



3. 정리

주석 처리된 부분을 풀고 빌드해서 실행해 보면 정상적으로 동작한다. 이것으로 boost asio 기본 API 함수들의 동작에 대해서 알아보았다. 이제 Network이나 Timer의 동작을 좀 더 명확하게 이해할 수 있는 기반을 갖췄다고 개인적으로 생각이 듭니다.


: