class twisted.internet.defer.DeferredLock(_ConcurrencyPrimitive): (source)
A lock for event driven systems.
Instance Variable | locked | True when this Lock has been acquired, false at all other times. Do not change this value, but it is useful to examine for the equivalent of a "non-blocking" acquisition. |
Method | acquire | Attempt to acquire the lock. Returns a Deferred that fires on lock acquisition with the DeferredLock as the value. If the lock is locked, then the Deferred is placed at the end of a waiting list. |
Method | release | Release the lock. If there is a waiting list, then the first Deferred in that waiting list will be called back. |
Method | _cancelAcquire | Remove a deferred d from our waiting list, as the deferred has been canceled. |
Inherited from _ConcurrencyPrimitive:
Method | __init__ | Undocumented |
Instance Variable | waiting | Undocumented |
Method | run | Acquire, run, release. |
Method | __aenter__ | We can be used as an asynchronous context manager. |
Method | __aexit__ | Undocumented |
Method | _releaseAndReturn | Undocumented |
True
when this Lock has been acquired, false at all other times. Do not change this value, but it is useful to examine for the equivalent of a "non-blocking" acquisition.bool
)
Remove a deferred d from our waiting list, as the deferred has been canceled.
Note: We do not need to wrap this in a try/except to catch d not being in self.waiting because this canceller will not be called if d has fired. release() pops a deferred out of self.waiting and calls it, so the canceller will no longer be called.
Parameters | d | The deferred that has been canceled. |
Attempt to acquire the lock. Returns a Deferred
that fires on lock acquisition with the DeferredLock
as the value. If the lock is locked, then the Deferred is placed at the end of a waiting list.
Returns | a Deferred which fires on lock acquisition. (type: a Deferred ) |