schedule<T> method
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;
}