dispose method

void dispose()

Dispose all engines and fail any pending acquire waiters.

Implementation

void dispose() {
  if (_disposed) return;
  _disposed = true;
  while (_waiters.isNotEmpty) {
    final w = _waiters.removeFirst();
    if (!w.isCompleted) {
      w.completeError(StateError('JsEnginePool is disposed'));
    }
  }
  final engines = List<JavascriptRuntime>.from(_all);
  _idle.clear();
  _all.clear();
  _leased.clear();
  for (final e in engines) {
    _disposeCount++;
    try {
      e.dispose();
    } catch (_) {}
  }
}