¿Qué les sucede a las variables en las funciones de las rutinas de tornado?

Soy nuevo en el concepto de E / S sin bloqueo, y hay algo que estoy teniendo problemas para comprender: las corutinas. considera este código:

class UserPostHandler(RequestHandler):
    @gen.coroutine
    def get(self):
        var = 'some variable'
        data = json.loads(self.request.body)
        yield motor_db.users.insert({self.request.remote_ip: data})#asynch non blocking db insert call
        #success
        self.set_status(201)
        print var

cuando elget Se llama a la función, crea la cadenavar. qué sucede con esta variable cuando la función espera elmotor.insert ¿completar? Según tengo entendido, "no bloquear" implica que ningún subproceso está esperando que se complete la llamada IO, y que no se está utilizando memoria mientras espera. Entonces, ¿dónde está el valor devar almacenado? ¿Cómo es accesible cuando se reanuda la ejecución?

¡Cualquier ayuda sería apreciada!

Respuestas a la pregunta(1)

Su respuesta a la pregunta