Ev EvLoop 클래스
(PECL ev >= 0.2.0)
소개
기본 루프와 항상 다른 이벤트 루프를 나타냅니다. 기본 루프와 달리 EvChild 감시자를 처리할 수 없습니다.
스레드가 있으면 스레드당 루프를 만들고 부모 스레드에서 기본 루프를 사용해야 합니다.
기본 이벤트 루프는 Ev 에 의해 자동으로 초기화됩니다. Ev 클래스의 메서드 또는 EvLoop::defaultLoop() 메서드를 통해 액세스할 수 있습니다.
클래스 개요
final class EvLoop {
/* Properties */
public $data;
public $backend;
public $is_default_loop;
public $iteration;
public $pending;
public $io_interval;
public $timeout_interval;
public $depth;
/* Methods */
public __construct(
int $flags = ?,
mixed $data = NULL ,
float $io_interval = 0.0 ,
float $timeout_interval = 0.0
)
public backend(): int
final public check( string $callback , string $data = ?, string $priority = ?): EvCheck
final public child(
string $pid ,
string $trace ,
string $callback ,
string $data = ?,
string $priority = ?
): EvChild
public static defaultLoop(
int $flags = Ev::FLAG_AUTO ,
mixed $data = NULL ,
float $io_interval = 0. ,
float $timeout_interval = 0.
): EvLoop
final public embed(
string $other ,
string $callback = ?,
string $data = ?,
string $priority = ?
): EvEmbed
final public fork( callable $callback , mixed $data = null , int $priority = 0 ): EvFork
final public idle( callable $callback , mixed $data = null , int $priority = 0 ): EvIdle
public invokePending(): void
final public io(
mixed $fd ,
int $events ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvIo
public loopFork(): void
public now(): float
public nowUpdate(): void
final public periodic(
float $offset ,
float $interval ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvPeriodic
final public prepare( callable $callback , mixed $data = null , int $priority = 0 ): EvPrepare
public resume(): void
public run( int $flags = 0 ): void
final public signal(
int $signum ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvSignal
final public stat(
string $path ,
float $interval ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvStat
public stop( int $how = ?): void
public suspend(): void
final public timer(
float $after ,
float $repeat ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvTimer
public verify(): void
}
Properties
- data
- 루프에 연결된 사용자 지정 데이터
- backend
- 읽기 전용 . 사용 중인 이벤트 백엔드를 나타내는 backend flags입니다.
- is_default_loop
- 읽기 전용 . 기본 이벤트 루프인 경우
true
입니다. - iteration
- 루프의 현재 반복 횟수입니다. Ev::iteration() 참조
- pending
- 대기 중인 관찰자 수입니다.
0
은 보류 중인 감시자가 없음을 나타냅니다. - io_interval
- io_interval이 높을수록 libev는 EvIo 이벤트를 수집하는 데 더 많은 시간을 할애할 수 있으므로 지연 시간이 늘어나는 대신 반복당 더 많은 이벤트를 처리할 수 있습니다. 타임아웃(EvPeriodic 및 EvTimer 모두)은 영향을 받지 않습니다. 이것을 0이 아닌 값으로 설정하면 대부분의 루프 반복에 추가
sleep()
호출이 도입됩니다. 절전 시간은 libev가 평균적으로 이 간격당 한 번 이상 EvIo 이벤트를 폴링하지 않도록 합니다. 많은 프로그램은 일반적으로 io_interval을0.1
에 가까운 값으로 설정하여 이점을 얻을 수 있습니다. 이는 종종 게임이 아닌 대화형 서버에 충분합니다. 일반적으로0.01
보다 낮은 값으로 설정하는 것은 의미가 없습니다. 이는 대부분의 시스템의 타이밍 단위에 접근하기 때문입니다.» 이벤트 루프를 제어하는 함수도 참조하세요.
- timeout_interval
- timeout_interval이 높을수록 libev는 대기 시간/지터/정확도가 증가하는 대신 시간 초과를 수집하는 데 더 많은 시간을 할애할 수 있습니다(감시자 콜백은 나중에 호출됩니다). EvIo 감시자는 영향을 받지 않습니다. non-null 값으로 설정하면 libev에서 오버헤드가 발생하지 않습니다. » 이벤트 루프를 제어하는 함수도 참조하세요.
- depth
- 재귀 깊이입니다. Ev::depth() 를 참조하십시오.
목차
- EvLoop::backend — libev에서 사용하는 백엔드를 설명하는 정수를 반환합니다.
- EvLoop::check — 현재 이벤트 루프 인스턴스와 연결된 EvCheck 객체를 생성합니다.
- EvLoop::child — 현재 이벤트 루프와 연결된 EvChild 개체를 만듭니다.
- EvLoop::__construct — 이벤트 루프 객체를 생성합니다.
- EvLoop::defaultLoop — 기본 이벤트 루프를 반환하거나 생성합니다.
- EvLoop::embed — 현재 EvLoop 개체와 연결된 EvEmbed 감시자의 인스턴스를 만듭니다.
- EvLoop::fork — 현재 이벤트 루프 인스턴스와 연결된 EvFork 감시자 개체를 만듭니다.
- EvLoop::idle — 현재 이벤트 루프 인스턴스와 연결된 EvIdle 감시자 개체를 만듭니다.
- EvLoop::invokePending — 보류 상태를 재설정하는 동안 보류 중인 모든 감시자를 호출합니다.
- EvLoop::io — 현재 이벤트 루프 인스턴스와 연결된 EvIo 감시자 객체 생성
- EvLoop::loopFork — 포크 후에 호출해야 합니다.
- EvLoop::now — 현재 "이벤트 루프 시간"을 반환합니다.
- EvLoop::nowUpdate — 커널을 쿼리하여 현재 시간을 설정하고 진행 중인 EvLoop::now가 반환한 시간을 업데이트합니다.
- EvLoop::periodic — 현재 이벤트 루프 인스턴스와 연결된 EvPeriodic 감시자 개체를 만듭니다.
- EvLoop::prepare — 현재 이벤트 루프 인스턴스와 연결된 EvPrepare 감시자 개체를 만듭니다.
- EvLoop::resume — 이전에 일시 중단된 기본 이벤트 루프 재개
- EvLoop::run — 이벤트 확인 및 루프에 대한 콜백 호출 시작
- EvLoop::signal — 현재 이벤트 루프 인스턴스와 연결된 EvSignal 감시자 개체를 만듭니다.
- EvLoop::stat — 현재 이벤트 루프 인스턴스와 연결된 EvStat 감시자 개체를 만듭니다.
- EvLoop::stop — 이벤트 루프를 중지합니다.
- EvLoop::suspend — 루프를 일시 중단
- EvLoop::timer — 현재 이벤트 루프 인스턴스와 연결된 EvTimer 감시자 개체를 만듭니다.
- EvLoop::verify — 내부 일관성 검사 수행(디버깅용)