title: Bring Uni event back to the caller thread
body: <p>Given a subscription in a Quarkus application:</p>
  <pre class="lang-kotlin prettyprint-override"><code>Uni.createFrom.Item(1)
      .chain { it -&gt; processA(it) }
      .emitOn(Infrastructure.getDefaultWorkerPool())
      .chain { it -&gt; processB(it) }
      .chain { it -&gt; processC(it) }
      .subscribe().with{ it -&gt; processD(it) }
  </code></pre>
  <p>If I understand correctly, <code>processA</code> will be executed on the caller thread (so if it is in a Verticle, it should be on a IO thread), <code>processB</code> and <code>processC</code> will be executed on the worker threads, <code>processD</code> will be on the caller/IO thread again.</p>
  <p>How can I make <code>processC</code> being called on the IO thread, while <code>processB</code> still on the worker thread? Is there a simple method to bring the event back to the caller thread?</p>
  <hr />
  <p>Edit: Right now I am using the following workaround:</p>
  <pre class="lang-kotlin prettyprint-override"><code>Uni.createFrom.Item(1)
      .chain { it -&gt; processA(it) }
      .chain { i -&gt; Uni.createFrom().future { Infrastructure.getDefaultWorkerPool().submit{ processB(i) } } }
      .chain { it -&gt; processC(it) }
      .subscribe().with{ it -&gt; processD(it) }
  </code></pre>