Goot idea! At the end I did it like that, but a little other way. There is a *request.add_finished_callback* property of the request object, so I extended the DAL object:
class Root(DAL):
def __init__(self, request, uri):
DAL.__init__(self, uri, pool_size=0)
request.add_finished_callback(self._close)
def _close(self, request):
self._adapter.close()

