Scheduler
Constructors
ControlledScheduler
Added in v2.0.0
Source
Signature
declare class ControlledScheduler implements Scheduler {
constructor();
deferred: boolean;
tasks: PriorityBuckets<Task>;
scheduleTask(task: Task, priority: number, fiber?: RuntimeFiber<unknown, unknown>): void;
shouldYield(fiber: RuntimeFiber<unknown, unknown>): number | false;
step(): void;
}Signature
declare function make(
scheduleTask: (task: Task, priority: number, fiber?: RuntimeFiber<unknown, unknown>) => void,
shouldYield: (fiber: RuntimeFiber<unknown, unknown>) => number | false,
): Scheduler;makeBatched
Added in v2.0.0
Source
Signature
declare function makeBatched(
callback: (runBatch: () => void) => void,
shouldYield: (fiber: RuntimeFiber<unknown, unknown>) => number | false,
): Scheduler;makeMatrix
Added in v2.0.0
Source
Signature
declare function makeMatrix(...record: Array<[number, Scheduler]>): Scheduler;MixedScheduler
Added in v2.0.0
Source
Signature
declare class MixedScheduler implements Scheduler {
constructor(maxNextTickBeforeTimer: number);
readonly maxNextTickBeforeTimer: number;
scheduleTask(task: Task, priority: number, fiber?: RuntimeFiber<unknown, unknown>): void;
shouldYield(fiber: RuntimeFiber<unknown, unknown>): number | false;
}SyncScheduler
Added in v2.0.0
Source
Signature
declare class SyncScheduler implements Scheduler {
constructor();
deferred: boolean;
tasks: PriorityBuckets<Task>;
flush(): void;
scheduleTask(task: Task, priority: number, fiber?: RuntimeFiber<unknown, unknown>): void;
shouldYield(fiber: RuntimeFiber<unknown, unknown>): number | false;
}Signature
declare function timer(
ms: number,
shouldYield: (fiber: RuntimeFiber<unknown, unknown>) => number | false,
): Scheduler;timerBatched
Added in v2.0.0
Source
Signature
declare function timerBatched(
ms: number,
shouldYield: (fiber: RuntimeFiber<unknown, unknown>) => number | false,
): Scheduler;Models
Signature
interface Scheduler {
scheduleTask(task: Task, priority: number, fiber?: RuntimeFiber<unknown, unknown>): void;
shouldYield(fiber: RuntimeFiber<unknown, unknown>): number | false;
}SchedulerRunner
Added in v3.20.0
Source
Signature
declare class SchedulerRunner {
constructor(scheduleDrain: (depth: number, drain: (depth: number) => void) => void);
running: boolean;
readonly scheduleDrain: (depth: number, drain: (depth: number) => void) => void;
tasks: PriorityBuckets<Task>;
scheduleTask(task: Task, priority: number): void;
static cached(
scheduleDrain: (depth: number, drain: (depth: number) => void) => void,
): (fiber?: RuntimeFiber<unknown, unknown>) => SchedulerRunner;
}Signature
type Task = () => void;Schedulers
defaultScheduler
Added in v2.0.0
Source
Signature
declare const defaultScheduler: Scheduler;Utilities
defaultShouldYield
Added in v2.0.0
Source
Signature
declare const defaultShouldYield: Scheduler["shouldYield"];Utils
PriorityBuckets
Added in v2.0.0
Source
Signature
declare class PriorityBuckets<in out T = Task> {
constructor<in out T = Task>();
buckets: Array<[number, Array<T>]>;
scheduleTask(task: T, priority: number): void;
}