run<E, A> method

FutureOr<Exit<E, A>> run<E, A>(
  1. EIO<E, A> zio, {
  2. DeferredIO<Never>? interruptionSignal,
})

Implementation

FutureOr<Exit<E, A>> run<E, A>(
  EIO<E, A> zio, {
  DeferredIO<Never>? interruptionSignal,
}) {
  assert(!_disposed, 'Runtime has been disposed');

  final context = ZIOContext(
    runtime: this,
    env: const NoEnv(),
    signal: interruptionSignal ?? _defaultSignal,
  );

  try {
    return zio.alwaysIgnore(context.close()).unsafeRun(context);
  } catch (error, stack) {
    return Either.left(Defect(error, stack));
  }
}