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 |
A DelayedCall based on _interval that will manage the next retry for acquiring the lock. |
Instance Variable | _timeoutCall |
A DelayedCall 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. |
DelayedCall
based on _interval
that will manage the next retry for acquiring the lock.DelayedCall
based on deferUntilLocked
's timeout argument. This is in charge of timing out our attempt to acquire the lock.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: float or int ) |
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. |