@override Future<void> dispose() async { _disposed = true; if (_pendingOperations > 0) { _allOperationsComplete = Completer<void>(); await _allOperationsComplete!.future; } }