title: Coroutine job never completing
body: <p>Given this piece of code</p>
  
  <pre><code>
  fun main() {
      val job = Job()
      val scope = GlobalScope + job
  
      scope.launch {
          println("working!")
          delay(1000L)is ms)
          println("done!")
          // how do i finish the job originally associated with this scope?
      }
  
  
      runBlocking {
          job.join()
          println("job done")
      }
  }
  </code></pre>
  
  <p>I have a custom coroutine scope for my application, and i'm associating a job with this scope like that, reason being i want all the new coroutines that are created from this scope to be the children of this job, if i cancel it i want everything in it to be cancelled.</p>
  
  <p>But main job itself is never completing. How do i complete the main job when the task is done? or failed...</p>