title: Vert.x way to write coroutine blocking code
body: <p>I do have the project that uses both coroutines and Vert.x. </p>
  
  <p>I'm trying to write a wrapper function to run blocking code on vertx worker thread pool </p>
  
  <p>Something like: </p>
  
  <pre><code>suspend inline fun &lt;T&gt; executeOnWorkerThread(crossinline block: () -&gt; T) =
      withContext(**Vertx-Worker-ThreadPool**) {
          block()
      }
  </code></pre>
  
  <p>So it may be used like </p>
  
  <pre><code> suspend fun usage(obj: Any): String = executeOnWorkerThread {
              try {
                  // blocking code
              } catch (e: Exception) {
                  // Exception handling
              }
          }
  </code></pre>
  
  <p>But this is not vert.x way. And I couldn't find the way to extract thread pool out of vert.x</p>