Effect<E, L, R>.raceAll constructor
{@category constructors}
Implementation
factory Effect.raceAll(Iterable<Effect<E, L, R>> iterable) =>
Effect.from((context) {
final signal = Deferred<Never, Never>.unsafeMake();
final deferred = Deferred<L, R>.unsafeMake();
for (final effect in iterable) {
effect
.__unsafeRun(context.withSignal(signal))
.then(deferred.unsafeCompleteExit);
if (deferred.unsafeCompleted) {
break;
}
}
return deferred.wait<E>().__unsafeRun(context).then(
(exit) => signal
.failCause<E, L>(const Interrupted())
.__unsafeRun(context.withoutSignal)
.then((_) => exit),
);
});