class documentation

A FilesystemLock that allows for a Deferred to be fired when the lock is acquired.

Method __init__ No summary
Method deferUntilLocked Wait until we acquire this lock. This method is not safe for concurrent use.
Instance Variable _interval The retry interval for an IReactorTime based scheduler.
Instance Variable _scheduler The object in charge of scheduling retries. In this implementation this is parameterized for testing.
Instance Variable _timeoutCall An IDelayedCall based on deferUntilLocked's timeout argument. This is in charge of timing out our attempt to acquire the lock.
Instance Variable _tryLockCall An IDelayedCall based on _interval that will manage the next retry for acquiring the lock.

Inherited from FilesystemLock:

Method lock Acquire this lock.
Method unlock Release this lock.
Instance Variable clean Indicates whether this lock was released cleanly by its last owner. Only meaningful after lock has been called and returns True.
Instance Variable locked Indicates whether the lock is currently held by this object.
Instance Variable name The name of the file associated with this lock.
def __init__(self, name: str, scheduler: Optional[IReactorTime] = None): (source)
Parameters
name:strThe name of the lock to acquire
scheduler:Optional[IReactorTime]An object which provides IReactorTime
def deferUntilLocked(self, timeout: Optional[float] = None) -> Deferred[None]: (source)

Wait until we acquire this lock. This method is not safe for concurrent use.

Parameters
timeout:Optional[float]the number of seconds after which to time out if the lock has not been acquired.
Returns
Deferred[None]a Deferred which will callback when the lock is acquired, or errback with a TimeoutError after timing out or an AlreadyTryingToLockError if the deferUntilLocked has already been called and not successfully locked the file.
_interval: int = (source)

The retry interval for an IReactorTime based scheduler.

_scheduler = (source)

The object in charge of scheduling retries. In this implementation this is parameterized for testing.

An IDelayedCall based on deferUntilLocked's timeout argument. This is in charge of timing out our attempt to acquire the lock.

An IDelayedCall based on _interval that will manage the next retry for acquiring the lock.