From aedbecd6735f6075f871412817f97639bf1365ec Mon Sep 17 00:00:00 2001 From: Lance Stout Date: Fri, 6 Apr 2012 17:39:51 -0400 Subject: Correct the statemachine's ensure_any method. It had not been updated to use the new condition instead of the old threading event. --- sleekxmpp/thirdparty/statemachine.py | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) (limited to 'sleekxmpp/thirdparty') diff --git a/sleekxmpp/thirdparty/statemachine.py b/sleekxmpp/thirdparty/statemachine.py index df3412d3..33d9b828 100644 --- a/sleekxmpp/thirdparty/statemachine.py +++ b/sleekxmpp/thirdparty/statemachine.py @@ -188,16 +188,7 @@ class StateMachine(object): # avoid an operation occurring in the wrong state. # TODO another option would be an ensure_ctx that uses a semaphore to allow # threads to indicate they want to remain in a particular state. - - # will return immediately if no transition is in process. - if block_on_transition: - # we're not in the middle of a transition; don't hold the lock - if self.lock.acquire(False): - self.lock.release() - # wait for the transition to complete - else: - self.lock.wait() - + self.lock.acquire() start = time.time() while not self.__current_state in states: # detect timeout: @@ -205,7 +196,9 @@ class StateMachine(object): if remainder > 0: self.lock.wait(remainder) else: + self.lock.release() return False + self.lock.release() return True def reset(self): -- cgit v1.2.3