def lock(self, timeout=None, poll_rate=None): # poll_rate & timeout as deltas or micros timeout = ndelta(timeout) or self.timeout or delta(0) poll_rate = ndelta(poll_rate) or self.poll_rate start = time() while not self._attempt_lock(): if poll_rate: poll_rate.sleep() if time() > start + timeout: break return self.locked
def __init__(self, slot_dir, ascendant_depth=1, process_breadth=None): # generally 5ms times the number of processes you gotta deal with self.slot_dir = slot_dir self.ascendant_depth = ascendant_depth self.slot_takeover_timeout = ndelta(ms=(process_breadth or 20)*50)
def __init__(self, name, timeout=None, poll_rate=None): # poll_rate & timeout as deltas or micros super(FileLock, self).__init__() self.lock_dir = '%s.lock' % str(name) self.locked = False self.poll_rate = ndelta(poll_rate) self.timeout = ndelta(timeout)