Boost.Fiber Integrating Fibers with Asynchronous Callbacks - Return Errorcode


Integrating Fibers with Asynchronous Callbacks - Return Errorcode

비동기 콜백과 파이버 통합 - 반환 오류 코드

AsyncAPI::init_write() 콜백은 오류 코드만 전달합니다.
단순히 차단 래퍼가 해당 오류 코드를 반환하도록 하려면 promise<>와 future<>를 매우 간단하게 사용하면 됩니다.
우리가 해야 할 일은 다음과 같습니다:

  1. 올바른 유형의 promise<>를 인스턴스화합니다.
  2. future<>를 얻습니다.
  3. promise::set_value()를 호출하도록 콜백을 준비합니다.
  4. future::get()을 차단합니다.

• Note
보류 중인 파이버를 재개하는 이 전략은 시작 파이버가 실행 중인 스레드가 아닌 다른 스레드에서 콜백이 호출되는 경우에도 작동합니다.   실제로 예제 프로그램의 더미 AsyncAPI 구현은 다음을 보여줍니다.   잠시 대기하는 새 스레드를 시작한 다음 관련 콜백을 호출하여 비동기 I/O를 시뮬레이션합니다.

⚛ 원문
Email 답글이 올라오면 이메일로 알려드리겠습니다.