schedule<T> method

Future<T> schedule<T>(
  1. ScheduledTask<T> task, {
  2. int priority = 0,
})

Schedules task to run when a slot is free, returning a future that completes with its result (or its error — a failed task never stalls the scheduler; the slot is always released). Higher priority runs sooner.

Example:

final scheduler = TaskScheduler(concurrency: 2);
final result = scheduler.schedule(() => fetch(url), priority: 10);

Audited: 2026-06-12 11:26 EDT

Implementation

Future<T> schedule<T>(ScheduledTask<T> task, {int priority = 0}) {
  final Completer<T> completer = Completer<T>();
  _insert(_PendingTask(priority, _sequence++, () => _execute<T>(task, completer)));
  _pump();
  return completer.future;
}