title: Asyncio print status of coroutines progress
body: <p>I have a bunch of coroutines that doing some work </p>
  
  <pre><code>@asyncio.coroutine
  def do_work():
      global COUNTER
      result = ...
      if result.status == 'OK':
          COUNTER += 1
  </code></pre>
  
  <p>and another one </p>
  
  <pre><code>COUNTER = 0
  @asyncio.coroutine
  def display_status():
      while True:
          print(COUNTER)
          yield from asyncio.sleep(1)
  </code></pre>
  
  <p>which have to display how many coroutines have finished their work. How to properly implement this task? Following solution doesn't work</p>
  
  <pre><code>@asyncio.coroutine
  def spawn_jobs():
      coros = []
      for i in range(10):
          coros.append(asyncio.Task(do_work()))
      yield from asyncio.gather(*coros)
  
  if __name__ == '__main__':
      loop = asyncio.get_event_loop()
      loop.create_task(display_status())
      loop.run_until_complete(spawn_jobs())
      loop.close()
  </code></pre>
  
  <p>I expect that counter will be printed to the console every second no matter what do_work() coroutines do. But I have just two outputs: 0 and after a few seconds repeating 10.</p>