Class SyncWaiter
java.lang.Object
ru.pathcreator.pyc.rpc.core.internal.SyncWaiter
Ожидатель завершения
PendingCall с таймаутом.
Класс реализует трехфазное ожидание: сначала короткий spin, затем yield, затем park. Это позволяет не платить полный park latency в типичном hot path локального RPC, но все же не крутиться бесконечно, если ответ действительно задерживается.
Waiter for PendingCall completion with a timeout. It uses a
three-phase strategy: short spin, then yield, then park. This avoids paying
full park latency in the common hot path while still backing off when a
response is genuinely delayed.
-
Constructor Summary
ConstructorsConstructorDescriptionПрофиль по умолчанию для hot RPC на localhost или low-latency LAN.SyncWaiter(int spinLimit, int yieldLimit, long coldParkNs) Создает ожидатель с явными лимитами spin/yield/park фаз. -
Method Summary
Modifier and TypeMethodDescriptionbooleanawait(PendingCall call, long timeoutNs) Ожидает завершения вызова до истечения таймаута.
-
Constructor Details
-
SyncWaiter
public SyncWaiter()Профиль по умолчанию для hot RPC на localhost или low-latency LAN.Default profile for hot RPC on localhost or a low-latency LAN.
-
SyncWaiter
public SyncWaiter(int spinLimit, int yieldLimit, long coldParkNs) Создает ожидатель с явными лимитами spin/yield/park фаз.Creates a waiter with explicit spin, yield, and park phase limits.
- Parameters:
spinLimit- максимальное число spin-итераций / maximum number of spin iterationsyieldLimit- максимальное число yield-итераций / maximum number of yield iterationscoldParkNs- длительность cold-park ожидания в наносекундах / cold park duration in nanoseconds
-
-
Method Details
-
await
Ожидает завершения вызова до истечения таймаута.Waits for a call to complete before the timeout expires.
- Parameters:
call- ожидающий RPC-вызов / pending RPC calltimeoutNs- таймаут ожидания в наносекундах / timeout in nanoseconds- Returns:
true, если вызов завершился в срок;false, если истек таймаут /trueif the call completed in time;falseon timeout
-