Namespaces
Variants

std::stop_source:: request_stop

From cppreference.net
Concurrency support library
Threads
(C++11)
(C++20)
this_thread namespace
(C++11)
(C++11)
Cooperative cancellation
Mutual exclusion
Generic lock management
Condition variables
(C++11)
Semaphores
Latches and Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
Safe reclamation
Hazard pointers
Atomic types
(C++11)
(C++20)
Initialization of atomic types
(C++11) (deprecated in C++20)
(C++11) (deprecated in C++20)
Memory ordering
(C++11) (deprecated in C++26)
Free functions for atomic operations
Free functions for atomic flags
bool request_stop ( ) noexcept ;
(C++20부터)

stop-state에 중지 요청을 발행합니다. 단, stop_source 객체가 stop-state를 가지고 있고 아직 중지가 요청되지 않은 경우에만 적용됩니다.

결정은 원자적으로 이루어지며, 정지 요청이 있었을 경우 경쟁 조건을 피하기 위해 정지 상태가 원자적으로 업데이트됩니다. 예를 들면:

  • stop_requested ( ) stop_possible ( ) 는 동일한 정지 상태를 공유하는 다른 stop_token stop_source 에서 동시에 호출될 수 있습니다;
  • request_stop ( ) 는 다른 stop_source 객체에서 동시에 호출될 수 있으며, 실제로 정지 요청을 수행하는 것은 하나뿐입니다.

그러나 Notes 섹션을 참조하십시오.

목차

매개변수

(없음)

반환값

true 만약 stop_source 객체가 중단 상태를 가지고 있고 이 호출이 중단 요청을 생성한 경우, 그렇지 않으면 false .

사후 조건

stop_possible ( ) false 이거나 stop_requested ( ) true 인 경우입니다.

참고 사항

만약 request_stop ( ) 가 중지 요청을 발행하는 경우(즉, true 를 반환하는 경우), 동일한 연관된 중지 상태에 등록된 모든 stop_callback 들은 동기적으로, request_stop ( ) 가 발행된 동일한 스레드에서 호출됩니다. 콜백 호출이 예외를 통해 종료되는 경우, std::terminate 가 호출됩니다.

만약 stop_source 객체가 중단 상태를 가지고 있지만 중단 요청이 이미 이루어진 경우, 이 함수는 false 를 반환합니다. 그러나 방금 (성공적으로) 중단을 요청한 다른 stop_source 객체가 아직 stop_callback 함수 호출 중간에 있지 않다는 보장은 없습니다.

만약 request_stop ( ) 가 중지 요청을 발행한다면 (즉, true 를 반환한다면), 해당 stop_source 의 중지 상태와 연관된 stop_token 에 대해 인터럽트 가능 대기 중인 기본 타입 std::condition_variable_any 의 모든 조건 변수들이 통지받게 됩니다.

예제