class twisted.internet.defer.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.Parameters | name | The name of the lock to acquire |
scheduler | An object which provides 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: 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. |