diff --git a/pom.xml b/pom.xml
index 24971ff..93f1c0f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -71,12 +71,12 @@
io.projectreactor
reactor-core
- 3.3.10.RELEASE
+ 3.4.0
io.projectreactor
reactor-tools
- 3.3.10.RELEASE
+ 3.4.0
org.slf4j
diff --git a/src/main/java/it/tdlight/tdlibsession/td/direct/AsyncTdDirectImpl.java b/src/main/java/it/tdlight/tdlibsession/td/direct/AsyncTdDirectImpl.java
index 971da76..b35279f 100644
--- a/src/main/java/it/tdlight/tdlibsession/td/direct/AsyncTdDirectImpl.java
+++ b/src/main/java/it/tdlight/tdlibsession/td/direct/AsyncTdDirectImpl.java
@@ -15,7 +15,6 @@ import java.time.Duration;
import java.util.concurrent.atomic.AtomicReference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import reactor.core.publisher.EmitterProcessor;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
import reactor.core.scheduler.Scheduler;
@@ -29,6 +28,7 @@ public class AsyncTdDirectImpl implements AsyncTdDirect {
private final Scheduler tdScheduler = Schedulers.newSingle("TdMain");
private final Scheduler tdPollScheduler = Schedulers.newSingle("TdPoll");
private final Scheduler tdResponsesScheduler = Schedulers.newSingle("TdResponse");
+ private final Scheduler tdExecScheduler = Schedulers.newSingle("TdExec");
private final Scheduler tdResponsesOutputScheduler = Schedulers.boundedElastic();
private Flux>> updatesProcessor;
@@ -44,7 +44,7 @@ public class AsyncTdDirectImpl implements AsyncTdDirect {
return Mono
.fromCallable(() -> TdResult.of(this.td.get().execute(request)))
.subscribeOn(tdResponsesScheduler)
- .publishOn(Schedulers.single());
+ .publishOn(tdExecScheduler);
} else {
return Mono.>create(sink -> {
try {