1 from __future__ import division
3 from twisted.internet import defer
4 from twisted.web import resource, server
6 class DeferredResource(resource.Resource):
7 def render(self, request):
9 if request._disconnected:
15 def finish_error(fail):
16 if request._disconnected:
18 request.setResponseCode(500) # won't do anything if already written to
19 request.write('---ERROR---')
23 defer.maybeDeferred(resource.Resource.render, self, request).addCallbacks(finish, finish_error)
24 return server.NOT_DONE_YET