title: "Fire and forget" python async/await
body: <p>Sometimes there is some non-critical asynchronous operation that needs to happen but I don't want to wait for it to complete.  In Tornado's coroutine implementation you can "fire &amp; forget" an asynchronous function by simply ommitting the <code>yield</code> key-word.</p>
  
  <p>I've been trying to figure out how to "fire &amp; forget" with the new <code>async</code>/<code>await</code> syntax released in Python 3.5.  E.g., a simplified code snippet:</p>
  
  <pre class="lang-python prettyprint-override"><code>async def async_foo():
      print("Do some stuff asynchronously here...")
  
  def bar():
      async_foo()  # fire and forget "async_foo()"
  
  bar()
  </code></pre>
  
  <p>What happens though is that <code>bar()</code> never executes and instead we get a runtime warning:</p>
  
  <pre class="lang-python prettyprint-override"><code>RuntimeWarning: coroutine 'async_foo' was never awaited
    async_foo()  # fire and forget "async_foo()"
  </code></pre>