title: Tornado cancel httpclient.AsyncHTTPClient fetch() from on_chunk()
body: <p>Inside one of the handlers I am doing the following:</p>
  
  <pre><code>    async def get(self):
            client = httpclient.AsyncHTTPClient()
            url = 'some url here'
            request = httpclient.HTTPRequest(url=url, streaming_callback=self.on_chunk, request_timeout=120)
            result = await client.fetch(request)
            self.write("done")
  
  
      @gen.coroutine
      def on_chunk(self, chunk):
            self.write(chunk)
            yield self.flush()
  </code></pre>
  
  <p>The requests can sometimes be quite large and the client may leave while the request is still in progress of being fetched and pumped to the client. If this happens an exception will appear in the on_chunk function when self.write() is attempted. My question is how do I abort the remaining download if my client went away ?</p>