Future<T> submitOrRun<T>(Future<T> Function() task) async { if (_disposers.isDisposed) { return await task(); } else { return await submit(task); } }