Fix handling state machine lock when quick exiting.
This commit is contained in:
parent
230465b946
commit
814a50e36f
8
sleekxmpp/thirdparty/statemachine.py
vendored
8
sleekxmpp/thirdparty/statemachine.py
vendored
@ -83,16 +83,16 @@ class StateMachine(object):
|
||||
if not to_state in self.__states:
|
||||
raise ValueError("StateMachine does not contain to_state %s." % to_state)
|
||||
|
||||
if self.__current_state == to_state:
|
||||
return True
|
||||
|
||||
start = time.time()
|
||||
while not self.lock.acquire(False):
|
||||
time.sleep(.001)
|
||||
if (start + wait - time.time()) <= 0.0:
|
||||
log.debug("Could not acquire lock")
|
||||
log.debug("==== Could not acquire lock in %s sec: %s -> %s ", wait, self.__current_state, to_state)
|
||||
return False
|
||||
|
||||
if self.__current_state == to_state:
|
||||
return True
|
||||
|
||||
while not self.__current_state in from_states:
|
||||
# detect timeout:
|
||||
remainder = start + wait - time.time()
|
||||
|
Loading…
x
Reference in New Issue
Block a user