title: What happens if a non-suspend function is called from a coroutine?
body: <p>One of the key concepts of coroutines in Kotlin is that a <strong>suspend function must be called from a coroutine or another suspend function</strong>.  </p>
  
  <p>However, a suspend function can call any kind of function, suspend or normal.<br>
  What is the consequence of that? (This is not a real scenario i have, just want to know for theoretical reasons)  </p>
  
  <p>I imagine that in that scenario the only point of creating a coroutine would be to change the context (thread) before calling it, so it doesn´t block the main thread.
  However, would all the other advantages of coroutines be lost? (cooperative cancellation, structured concurrency...)</p>