io_services.run() non-blocking 하게 돌리자
프로그래밍 언어/boost 2015. 11. 25. 21:25
boost asio 네트워크 프로그래밍을 배우면서 io_services.run() 함수 blocking을 통제(?) 하기 위해서 수단을 찾다가 몇가지 방법을 기술하도록 한다. (원래의 목적은 서버를 실행한 다음 getchar() 입력을 대기하는동안 계속 서버는 구동되고, 키보드의 입력이 있을 경우 stop() 콜을 하여 서버가 종료되도록 하는것이 목적이었다.) if( 서버.시작() == true) { getchar(); 서버.종료();}대략 이런 코드 구조.... boost asio 의 io_services.run() 함수는 구동중인 스레드에서 blocking 되는 함수로써 이를 non-blocking 함수처럼 사용하기 위해서 열심히 구글링해서 찾은 아래와 같이 키보드 입력에 대한 인터럽트를 이용하여 방..