Boost.Fiber Namespace this_fiber


Namespace this_fiber

일반적으로 this_fiber 작업은 "main" 파이버(main() 함수가 입력되는 파이버)뿐만 아니라 명시적으로 시작된 스레드의 스레드 함수에서도 호출될 수 있습니다.   즉, 여러 측면에서 각 스레드의 기본 파이버는 명시적으로 실행된 파이버처럼 처리될 수 있습니다.

Non-member function this_fiber::get_id()

  • Returns: 현재 실행 중인 Fiber를 나타내는 fiber::id의 인스턴스입니다.
  • Throws: Nothing.

Non-member function this_fiber::sleep_until()

  • Effects: 'abs_time'에 지정된 시점에 도달할 때까지 현재 파이버를 일시 중단합니다.
  • Throws: 시간 초과 관련 예외. timeout-related exceptions.
  • Note 1: 현재 파이버는 abs_time 이전에는 재개되지 않지만, abs_time 이후 얼마나 빨리 재개될지는 보장할 수 없습니다.
  • Note 2: "timeout-related exceptions 시간 초과 관련 예외"는 C++ 표준 섹션 30.2.4 타이밍 사양 [thread.req.timing]에 정의되어 있습니다.   "시간 초과를 지정하는 인수를 취하는 함수는 실행 중에 시계가 다음과 같은 경우 발생합니다. 시점 또는 기간에서 예외가 발생합니다. 이러한 예외를 시간 초과 관련 예외라고 합니다.”

Non-member function this_fiber::sleep_for()

  • Effects: 'rel_time'에 지정된 시간이 경과할 때까지 현재 파이버를 일시 중단합니다.
  • Throws: timeout-related exceptions.
  • Note: 현재 파이버는 'rel_time'이 경과하기 전에는 재개되지 않지만, 그 후 얼마나 빨리 재개될지는 보장할 수 없습니다.

Non-member function this_fiber::yield()

  • Effects: 실행 제어를 포기하고 다른 파이버를 실행할 수 있도록 양보합니다.
  • Throws: Nothing
  • Note: yield()를 호출하는 파이버는 일시 중단되지 않습니다.   실행 준비가 완료되면 즉시 스케줄러에 전달됩니다.

Non-member function this_fiber::properties()

  • Preconditions: use_scheduling_algorithm()은 동일한 템플릿 인수 'PROPS'를 사용하는 algorithm_with_properties<>의 하위 클래스를 사용하여 이 스레드에서 호출되었습니다.
  • Returns: 현재 실행 중인 파이버에 대한 스케줄러 속성 인스턴스에 대한 참조입니다.
  • Throws: std::bad_cast use_scheduling_algorithm()이 PROPS가 아닌 다른 템플릿 매개변수와 함께 algorithm_with_properties 하위 클래스로 호출된 경우.
  • Note 1: algorithm_with_properties<>는 사용자 코딩 스케줄러가 우선 순위와 같은 확장 속성을 Fiber 인스턴스와 연결하는 방법을 제공합니다. 이 기능을 사용하면 사용자가 제공한 속성에 액세스할 수 있습니다.
  • Note 2: 이 함수가 스레드의 기본 파이버에서 처음 호출되면 내부적으로 양보하여 다른 파이버가 실행되도록 허용할 수 있습니다.
  • See also: Customization
⚛ 원문
Email 답글이 올라오면 이메일로 알려드리겠습니다.