From 6e04e388253b82fcbab66fc965736ca13f84267f Mon Sep 17 00:00:00 2001 From: sfan5 Date: Sat, 3 Aug 2024 15:22:01 +0200 Subject: [PATCH] Fix deadlock in exception case --- secretlounge_ng/database.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/secretlounge_ng/database.py b/secretlounge_ng/database.py index 2e82b35..cfa5c33 100644 --- a/secretlounge_ng/database.py +++ b/secretlounge_ng/database.py @@ -130,10 +130,12 @@ def __init__(self, obj, func, lock=None): def __enter__(self): return self.obj def __exit__(self, exc_type, *_): - if exc_type is None: - self.func(self.obj) - if self.lock is not None: - self.lock.release() + try: + if exc_type is None: + self.func(self.obj) + finally: + if self.lock is not None: + self.lock.release() class Database(): def __init__(self):