std::experimental::flex_barrier:: arrive_and_drop
|
void
arrive_and_drop
(
)
;
|
(동시성 TS) | |
flex_barrier
의 동기화 지점에 도달하고 현재 스레드를 참여 스레드 집합에서 제거합니다. 이 함수가 완료 단계가 끝날 때까지 블로킹되는지 여부는 명시되지 않습니다. 함수가 블로킹되는 경우, 호출 스레드가 완료 단계를 실행하도록 선택될 수 있습니다.
호출 스레드가 이
flex_barrier
의 참여 스레드 집합에 속하지 않는 경우 동작은 정의되지 않습니다.
arrive_and_drop
에 대한 호출은
flex_barrier
의 완료 단계 시작과 동기화됩니다. 호출이 블록되는 경우, 완료 단계의 완료는 호출로부터의 반환과 동기화됩니다.
arrive_and_drop
및
arrive_and_wait
에 대한 호출은 서로 간에 또는 자기 자신과 데이터 경쟁을 발생시키지 않습니다.
예외
아무것도 던지지 않습니다.
참고 사항
참여하는 모든 스레드가
arrive_and_drop
을 호출하더라도 완료 단계는 실행됩니다.
스레드가
flex_barrier
의
arrive_and_drop
을 호출한 후에는, 완료 단계에서 호출된 함수 객체가 양의 값을 반환하더라도 해당 배리어의 소멸자를 제외한 어떤 멤버 함수도 호출할 수 없습니다.
참고 항목
|
동기화 지점에 도달하고 차단
(public member function) |