コード例 #1
0
ファイル: scheduler.py プロジェクト: shivai/ooni-probe
 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()
コード例 #2
0
    def test_defaultScheduler(self):
        """
        Test that the default scheduler is set up properly.
        """
        lock = defer.DeferredFilesystemLock(self.mktemp())

        self.assertEquals(lock._scheduler, reactor)
コード例 #3
0
ファイル: reporter.py プロジェクト: Archer-sys/ooni-probe
    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
コード例 #4
0
        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
コード例 #5
0
 def setUp(self):
     self.clock = Clock()
     self.lock = defer.DeferredFilesystemLock(self.mktemp(),
                                              scheduler=self.clock)
コード例 #6
0
ファイル: reporter.py プロジェクト: xhdix/probe-legacy
 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)