diff --git a/src/main/java/it/tdlight/tdlibsession/EventBusFlux.java b/src/main/java/it/tdlight/tdlibsession/EventBusFlux.java index e388aa5..9581f96 100644 --- a/src/main/java/it/tdlight/tdlibsession/EventBusFlux.java +++ b/src/main/java/it/tdlight/tdlibsession/EventBusFlux.java @@ -98,7 +98,9 @@ public class EventBusFlux { .flatMap(item -> Mono.>create(itemSink -> { var responseHandler = MonoUtils.toHandler(itemSink); eventBus.request(subscriptionAddress + ".signal", SignalMessage.onNext(item), signalDeliveryOptions, responseHandler); - })).subscribe(response -> {}, error -> { + })) + .subscribeOn(Schedulers.single()) + .subscribe(response -> {}, error -> { if (error instanceof ReplyException) { var errorMessageCode = ((ReplyException) error).failureCode(); // -1 == NO_HANDLERS @@ -309,7 +311,9 @@ public class EventBusFlux { } } }))) - .subscribeOn(Schedulers.single()) + .subscribeOn(Schedulers.boundedElastic()) + .onBackpressureBuffer() + .publishOn(Schedulers.single()) .subscribe(v -> {}, emitter::error); emitter.onDispose(() -> {