ensure context cleanup runs even if teardown raises

This commit is contained in:
Kadir Can Ozden 2026-02-20 03:49:10 +03:00
parent 7b0088693e
commit 913b2b6a35

View file

@ -484,10 +484,14 @@ class AppContext:
try: try:
if self._request is not None: if self._request is not None:
try:
self.app.do_teardown_request(self, exc) self.app.do_teardown_request(self, exc)
finally:
self._request.close() self._request.close()
finally: finally:
try:
self.app.do_teardown_appcontext(self, exc) self.app.do_teardown_appcontext(self, exc)
finally:
_cv_app.reset(self._cv_token) _cv_app.reset(self._cv_token)
self._cv_token = None self._cv_token = None
appcontext_popped.send(self.app, _async_wrapper=self.app.ensure_sync) appcontext_popped.send(self.app, _async_wrapper=self.app.ensure_sync)