title: How to use Kotlin coroutines await() on main thread
body: <p>I just started learning Kotlin coroutines and was trying to simulate some long time API-calls with showing the result on the UI:</p>
  
  <pre><code>class MainActivity : AppCompatActivity() {
      fun log(msg: String) = println("[${Thread.currentThread().name}] $msg")
  
      override
      fun onCreate(savedInstanceState: Bundle?) {
          super.onCreate(savedInstanceState)
          this.setContentView(R.layout.activity_main)
          val resultTV = findViewById(R.id.text) as TextView
  
          val a = async(CommonPool) {
              delay(1_000L)
              6
          }
  
          val b = async(CommonPool) {
              delay(1_000L)
              7
          }
  
          launch(&lt; NEED UI thread here &gt;) {
              val aVal = a.await()
              val bVal = b.await()
              resultTV.setText((aVal * bVal).toString())
          }
      }
  }
  </code></pre>
  
  <p>I don't understand how could I possibly use <code>launch</code> method with <code>main</code> context. </p>
  
  <p>Unfortunately, I was not able to find anything about delivering results for some specific threads on <a href="https://github.com/Kotlin/kotlinx.coroutines/blob/master/coroutines-guide.md#concurrent-using-async" rel="noreferrer">the official tutorial for coroutines</a>.</p>