ZIO<R, E, A>.raceAll constructor
Implementation
factory ZIO.raceAll(Iterable<ZIO<R, E, A>> others) => ZIO.from((ctx) {
final signal = DeferredIO<Never>();
final deferred = Deferred<E, A>();
for (final zio in others) {
zio
.unsafeRun(ctx.withSignal(signal))
.then(deferred.unsafeCompleteExit);
if (deferred.unsafeCompleted) {
break;
}
}
return deferred.await<R>().unsafeRun(ctx).then(
(exit) => signal
.failCause(const Interrupted())
.unsafeRun(ctx.withoutSignal)
.then((_) => exit),
);
});