def __init__(self, file_path): """ Args: file_path: is the location of where the filesystem based lockfile should be written to. """ self._fs_lock = defer.DeferredFilesystemLock(file_path) self._mutex = defer.DeferredLock()
def test_defaultScheduler(self): """ Test that the default scheduler is set up properly. """ lock = defer.DeferredFilesystemLock(self.mktemp()) self.assertEquals(lock._scheduler, reactor)
def run(self, f, *arg, **kw): lock = defer.DeferredFilesystemLock(self.file_name + '.lock') d = lock.deferUntilLocked() def unlockAndReturn(r): lock.unlock() return r def execute(_): d = defer.maybeDeferred(f, *arg, **kw) d.addBoth(unlockAndReturn) return d d.addCallback(execute) return d
def new_method(*args, **kwargs): dirname, _ = os.path.split(path) mkdir_p(dirname) name = path + '.lock' # TODO: evaluate the need to replace this for a readers-writer lock lock = defer.DeferredFilesystemLock(name) def _release(result): lock.unlock() return result d = lock.deferUntilLocked() d.addCallback(lambda _: method(*args, **kwargs)) d.addCallbacks(_release, _release) return d
def setUp(self): self.clock = Clock() self.lock = defer.DeferredFilesystemLock(self.mktemp(), scheduler=self.clock)
def _lock_for_report_log(self, measurement_id): lock_file = self.measurement_dir.child(measurement_id).child( "report_log.lock") return defer.DeferredFilesystemLock(lock_file.path)