def tornado_http(func):
    func = gen.coroutine(func)

    def wrapper(request, response):
        yield func(TornadoPatchedRequest(request), _HTTPResponse(response))