title: Run two Kotlin coroutines inside coroutine in parallel
body: <p>I have two suspend functions:</p>
  
  <pre><code>suspend fun sendData() : Boolean 
  
  suspend fun awaitAcknowledge() : Boolean
  </code></pre>
  
  <p>and I want to wrap them in a third suspend function in which they should be executed in parallel and I want to calculate the final result by having both return values:</p>
  
  <pre><code>suspend fun sendDataAndAwaitAcknowledge() : Boolean {
      // TODO execute both in parallel and compare both results
  }
  </code></pre>
  
  <p>However, if I write it like that,</p>
  
  <pre><code>suspend fun sendDataAndAwaitAcknowledge() : Boolean {
      val sendResult = sendData()
      val receiveAck = awaitAcknowledge()
  }
  </code></pre>
  
  <p>the functions will be executed in a serial order, which will not work in my case. </p>
  
  <p>Coming from RxJava, I would like to achieve something like the <code>zip</code> operator:</p>
  
  <pre><code>Single.zip(awaitAcknowledge(), sendData(), {receiveAck, sendResult -&gt; ...})
  </code></pre>
  
  <p>How can I do this with <code>Coroutines</code>?</p>