Boost C++ Libraries/Boost.Asio

Boost.Asio 색인 - execution::bulk_execute

까마귀75 2021. 1. 24. 01:43
728x90
반응형

execution::bulk_execute

대량 발신기(sender)를 생성하는 사용자 지정 지점이다.

constexpr unspecified bulk_execute = unspecified;

execution::bulk_execute 이름은 사용자 지정 지점 개체를 나타낸다. is_convertible_v<N, size_t>true이면, 일부 하위 표현식 S, FN에 대한 execution::bulk_execute(S, F, N) 표현식은 다음과 같은 표현식이다:

  • S.bulk_execute(F, N), 해당 표현식이 유효한 경우. 선택된 함수가 순방향 진행을 보장하는 boost::asio::query(S, execution::bulk_guarantee)를 사용하여 실행기(executor) S에서 함수 개체 FN 호출을 대량으로 실행하지 않고, 해당 함수의 결과가 sender<void>를 모델링하지 않으면, 프로그램은 진단이 필요없이 형식이 잘못된 상태가 된다.
  • 그렇지 않으면 bulk_execute(S, F, N), 해당 표현식이 유효한 경우, void bulk_execute(); 선언은 포함하고 execution::bulk_execute 선언은 포함하지 않은 컨텍스트에서 오버로드 작업이 수행된다. 오버로드 작업에서 선택된 함수가 순방향 진행을 보장하는 boost::asio::query(E, execution::bulk_guarantee)를 사용하여 실행기 S에서 함수 개체 FN 호출을 대량으로 실행하지 않고, 해당 함수의 결과가 sender<void>를 모델링하지 않으면, 프로그램은 진단이 필요없이 형식이 잘못된 상태가 된다.
  • 그렇지 않으면 F 유형과 executor_index_t<remove_cvref_t<S>> 모델이 호출 가능하고, boost::asio::query(S, execution::bulk_guarantee)execution::bulk_quarantee.unsequenced와 같으면
  • 호출 스레드에서 DECAY_COPY(std::forward<decltype(F)>(F))를 평가하여 함수 개체 cf를 생성한다. [참고: 이후에 cf의 추가 사본을 생성할 수 있다.]
  • N에서 i의 각 값에 대해 cf(i) (또는 cf의 복사본)는 i의 각 값에 대한 고유한 실행 에이전트에 의해 최대 한번 호출된다.
  • 하나 이상의 cf 호출은 보류중인 완료를 블럭할 수 있다.
  • cf의 호출은 (C++ Std [intro.multithread])와 동기화한다.
  • 그렇지 않으면 execution::bulk_execute(S, F, N) 형식이 잘못된 상태가 된다.

요구 사항

일반 헤더: boost/asio/execution/bulk_execute.hpp
편의 헤더: boost/asio/execution.hpp

Boost.Asio 홈

728x90
반응형