def __timedWaitForLock(self, timeout): glogger.debug(self.clientId + " started waiting for " + str(timeout) + " seconds for lock to be free") elapsedWaitingTime = 0 done = False timeExpired = False while not done: waitPeriod = min(3, timeout - elapsedWaitingTime) if waitPeriod <= 0: waitPeriod = 0 utilities.runCommand("sleep " + str(waitPeriod)) elapsedWaitingTime = elapsedWaitingTime + waitPeriod if elapsedWaitingTime >= timeout: timeExpired = True done = True else: glogger.debug("lock is not free. " + self.clientId + " trying again") start = time.time() done = self.__isLockFree() end = time.time() delay = int(end - start) elapsedWaitingTime += delay if not timeExpired: glogger.debug(self.clientId + " found the lock free after waiting for " + str(elapsedWaitingTime) + " seconds") return timeExpired, elapsedWaitingTime
def __waitForLockInfinitely(self): glogger.debug(self.clientId + " started waiting infinitely for lock to be free") waitPeriod = 3 done = False while not done: utilities.runCommand("sleep " + str(waitPeriod)) glogger.debug("lock is not free trying again for " + self.clientId) done = self.__isLockFree() glogger.debug(self.clientId + " found the lock free") return 0
def __timedWaitForLock(self, timeout): glogger.debug(self.clientId + " started waiting for " + str(timeout) + " seconds for lock to be free") elapsedWaitingTime = 0 done = False timeExpired = False while not done: waitPeriod = min(3, timeout - elapsedWaitingTime) if waitPeriod <= 0: waitPeriod = 0 utilities.runCommand("sleep " + str(waitPeriod)) elapsedWaitingTime = elapsedWaitingTime + waitPeriod if elapsedWaitingTime >= timeout: timeExpired = True done = True else: glogger.debug("lock is not free. " + self.clientId + " trying again") start = time.time() done = self.__isLockFree() end = time.time() delay = int(end-start) elapsedWaitingTime += delay if not timeExpired: glogger.debug(self.clientId + " found the lock free after waiting for " + str(elapsedWaitingTime) + " seconds") return timeExpired,elapsedWaitingTime