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 <markus.zolliker@psi.ch> Tested-by: Jenkins Automated Tests <pedersen+jenkins@frm2.tum.de>
This commit is contained in:
parent
00ef174292
commit
a246584c4a
@ -55,7 +55,7 @@ class MultiEvent(threading.Event):
|
|||||||
|
|
||||||
def __init__(self, default_timeout=None):
|
def __init__(self, default_timeout=None):
|
||||||
self.events = set()
|
self.events = set()
|
||||||
self._lock = threading.Lock()
|
self._lock = threading.RLock()
|
||||||
self.default_timeout = default_timeout or None # treat 0 as None
|
self.default_timeout = default_timeout or None # treat 0 as None
|
||||||
self.name = None # default event name
|
self.name = None # default event name
|
||||||
self._actions = [] # actions to be executed on trigger
|
self._actions = [] # actions to be executed on trigger
|
||||||
|
Loading…
x
Reference in New Issue
Block a user