From 814a50e36feb73ced9152680560261addf3ff0ea Mon Sep 17 00:00:00 2001 From: Lance Stout Date: Fri, 10 Aug 2012 14:11:44 -0700 Subject: Fix handling state machine lock when quick exiting. --- sleekxmpp/thirdparty/statemachine.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sleekxmpp/thirdparty/statemachine.py b/sleekxmpp/thirdparty/statemachine.py index 1f01a92a..4b5ecd6b 100644 --- a/sleekxmpp/thirdparty/statemachine.py +++ b/sleekxmpp/thirdparty/statemachine.py @@ -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() -- cgit v1.2.3