public AvailabilityAwareRSocketProxy(RSocket source) { super(source); onClose.doFinally(signalType -> source.dispose()).subscribe(); }
public RSocketSupplierPool(Publisher<? extends Collection<RSocketSupplier>> publisher) { this.onClose = MonoProcessor.create(); this.factoryPool = new ArrayList<>(); this.leasedSuppliers = new ArrayList<>(); Disposable disposable = Flux.from(publisher) .doOnNext(this::handleNewFactories) .onErrorResume( t -> { logger.error("error streaming RSocketSuppliers", t); return Mono.delay(Duration.ofSeconds(10)).then(Mono.error(t)); }) .subscribe(); onClose.doFinally(s -> disposable.dispose()).subscribe(); }
onClose.doFinally(signalType -> pool.dispose()).subscribe();
public AvailabilityAwareRSocketProxy(RSocket source) { super(source); onClose.doFinally(signalType -> source.dispose()).subscribe(); }
poolSize, tracerSupplier); proteus.onClose.doFinally(s -> PROTEUS.remove(proteusKey)).subscribe();
public RSocketSupplierPool(Publisher<? extends Collection<RSocketSupplier>> publisher) { this.onClose = MonoProcessor.create(); this.factoryPool = new ArrayList<>(); this.leasedSuppliers = new ArrayList<>(); Disposable disposable = Flux.from(publisher) .doOnNext(this::handleNewFactories) .onErrorResume( t -> { logger.error("error streaming RSocketSuppliers", t); return Mono.delay(Duration.ofSeconds(10)).then(Mono.error(t)); }) .subscribe(); onClose.doFinally(s -> disposable.dispose()).subscribe(); }
.doFinally( s -> { if (disposable != null) {
poolSize, tracerSupplier); proteus.onClose.doFinally(s -> PROTEUS.remove(proteusKey)).subscribe();
poolSize, tracerSupplier); proteus.onClose.doFinally(s -> PROTEUS.remove(proteusKey)).subscribe();
@Override public ClientTransport get() { if (onClose.isDisposed()) { throw new IllegalStateException("WeightedClientTransportSupplier is closed"); } int i = selectCount.get(); return () -> clientTransportFunction .apply(socketAddress) .connect() .doOnNext( duplexConnection -> { logger.debug("opened connection to {} - active connections {}", socketAddress, i); Disposable onCloseDisposable = onClose.doFinally(s -> duplexConnection.dispose()).subscribe(); duplexConnection .onClose() .doFinally( s -> { int d = selectCount.decrementAndGet(); logger.debug( "closed connection {} - active connections {}", socketAddress, d); onCloseDisposable.dispose(); }) .subscribe(); errorPercentage.insert(1.0); }) .doOnError(t -> errorPercentage.insert(0.0)); }
@Override public ClientTransport get() { if (onClose.isDisposed()) { throw new IllegalStateException("WeightedClientTransportSupplier is closed"); } int i = selectCount.get(); return () -> clientTransportFunction .apply(socketAddress) .connect() .doOnNext( duplexConnection -> { logger.debug("opened connection to {} - active connections {}", socketAddress, i); Disposable onCloseDisposable = onClose.doFinally(s -> duplexConnection.dispose()).subscribe(); duplexConnection .onClose() .doFinally( s -> { int d = selectCount.decrementAndGet(); logger.debug( "closed connection {} - active connections {}", socketAddress, d); onCloseDisposable.dispose(); }) .subscribe(); errorPercentage.insert(1.0); }) .doOnError(t -> errorPercentage.insert(0.0)); }
.doFinally( s -> { disposable.dispose();
onClose.doFinally(s -> duplexConnection.dispose()).subscribe();
.doFinally( s -> { if (disposable != null) {
onClose.doFinally(signalType -> pool.dispose()).subscribe();
void setRSocket(RSocket rSocket) { MonoProcessor<RSocket> _m; synchronized (this) { _m = currentSink; resetStatistics(); } _m.onNext(rSocket); _m.onComplete(); Disposable subscribe = onClose .doFinally( s -> { rSocket.dispose(); _m.cancel(); }) .subscribe(); rSocket .onClose() .doFinally( s -> { subscribe.dispose(); resetMono(); }) .subscribe(); }
void setRSocket(RSocket rSocket) { MonoProcessor<RSocket> _m; synchronized (this) { _m = currentSink; resetStatistics(); } _m.onNext(rSocket); _m.onComplete(); Disposable subscribe = onClose .doFinally( s -> { rSocket.dispose(); _m.cancel(); }) .subscribe(); rSocket .onClose() .doFinally( s -> { subscribe.dispose(); resetMono(); }) .subscribe(); }
void setRSocket(RSocket rSocket) { MonoProcessor<RSocket> _m; synchronized (this) { _m = currentSink; resetStatistics(); } _m.onNext(rSocket); _m.onComplete(); Disposable subscribe = onClose .doFinally( s -> { rSocket.dispose(); _m.cancel(); }) .subscribe(); rSocket .onClose() .doFinally( s -> { subscribe.dispose(); resetMono(); }) .subscribe(); }