class DeferredFilesystemLock(lockfile.FilesystemLock): (source)
A FilesystemLock
that allows for a Deferred
to be fired when the lock is acquired.
Method | __init__ |
|
Method | deferUntilLocked |
Wait until we acquire this lock. This method is not safe for concurrent use. |
Instance Variable | _scheduler |
The object in charge of scheduling retries. In this implementation this is parameterized for testing. |
Instance Variable | _interval |
The retry interval for an IReactorTime based scheduler. |
Instance Variable | _tryLockCall |
An IDelayedCall based on _interval that will manage the next retry for acquiring the lock. |
Instance Variable | _timeoutCall |
An IDelayedCall based on deferUntilLocked 's timeout argument. This is in charge of timing out our attempt to acquire the lock. |
Inherited from FilesystemLock
:
Instance Variable | name |
The name of the file associated with 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. |
Method | lock |
Acquire this lock. |
Method | unlock |
Release this lock. |
IDelayedCall
based on _interval
that will manage the next retry for acquiring the lock.Optional[IDelayedCall]
)
IDelayedCall
based on deferUntilLocked
's timeout argument. This is in charge of timing out our attempt to acquire the lock.Optional[IDelayedCall]
)
Parameters | name | The name of the lock to acquire (type: str ) |
scheduler | An object which provides IReactorTime (type: Optional[IReactorTime] ) |
Wait until we acquire this lock. This method is not safe for concurrent use.
Parameters | timeout | the number of seconds after which to time out if the lock has not been acquired. (type: Optional[float] ) |
Returns | 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. (type: Deferred[None] ) |