Boost.Fiber when_any, return value


when_any, return value - 반환 값

완료할 작업 함수 중 첫 번째 함수부터 반환 값을 캡처하는 기능을 추가하는 것이 더 유용한 것 같습니다.
다시 말하지만, 누구도 예외를 발생시키지 않을 것이라고 가정합니다.

한 가지 전략은 단순한 부울 대신 첫 번째 반환 값을 저장하도록 Done 클래스를 조정하는 것입니다.
그러나 우리는 대신 buffered_channel<>을 사용하기로 선택했습니다.
첫 번째 값만 대기열에 추가하면 되므로 해당 값을 검색한 후에는 buffered_channel::close()를 수행합니다.
후속 push() 호출은 닫힌 상태로 반환됩니다. wait_first_value_impl() 함수의 핵심은 예상한 대로입니다: 전달된 함수를 호출하고 반환 값을 푸시하며 push() 결과를 무시합니다.
다음과 같이 호출할 수 있습니다.

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