title: Python tornado stream request body
body: <p>The documentation (<a href="http://www.tornadoweb.org/en/stable/web.html#tornado.web.stream_request_body" rel="nofollow noreferrer">http://www.tornadoweb.org/en/stable/web.html#tornado.web.stream_request_body</a>) is writen that
  <code>There is a subtle interaction between data_received and asynchronous prepare: The first call to data_received may occur at any point after the call to prepare has returned or yielded.</code>
  But if I try</p>
  
  <pre><code>@tornado.web.stream_request_body
  class HTTPHandler(tornado.web.RequestHandler):
      @tornado.gen.coroutine
      def prepare(self):
          yield long_time_operation()
  
      @tornado.gen.coroutine
      def data_received(self, chunk):
          print("Data received")
  </code></pre>
  
  <p>data_received do not called before prepare returns (not yield). Why?</p>