in jvm/diffuser/src/main/java/com/spotify/diffuser/fuser/Fuser.java [211:227]
private static <A> Source<A> sourceFrom(List<Fuser<A>> fusers) {
return effect -> {
final List<Disposable> disposables = new ArrayList<>();
for (final Fuser<A> fuser : fusers) {
final Disposable disposable = fuser.connect(effect);
disposables.add(disposable);
}
return () -> {
synchronized (disposables) {
for (final Disposable disposable : disposables) {
disposable.dispose();
}
disposables.clear();
}
};
};
}