From a246584c4a28ec2098c7423d9e2f4bf763137a64 Mon Sep 17 00:00:00 2001 From: Markus Zolliker Date: Wed, 13 Nov 2024 11:53:05 +0100 Subject: [PATCH] frappy.lib.multievent: avoid deadlock use RLock instead of Lock, as queued actions might call the set/clear methods recursively Change-Id: Id43aa8669955e6be9f61379d039a4f65eb7b2dc4 Reviewed-on: https://forge.frm2.tum.de/review/c/secop/frappy/+/34950 Reviewed-by: Markus Zolliker Tested-by: Jenkins Automated Tests --- frappy/lib/multievent.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frappy/lib/multievent.py b/frappy/lib/multievent.py index d02a278..95dd8e1 100644 --- a/frappy/lib/multievent.py +++ b/frappy/lib/multievent.py @@ -55,7 +55,7 @@ class MultiEvent(threading.Event): def __init__(self, default_timeout=None): self.events = set() - self._lock = threading.Lock() + self._lock = threading.RLock() self.default_timeout = default_timeout or None # treat 0 as None self.name = None # default event name self._actions = [] # actions to be executed on trigger