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
Method run Acquire, run, release.
Method __aenter__ We can be used as an asynchronous context manager.
Method __aexit__ Undocumented
Method _releaseAndReturn Undocumented
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.
def _cancelAcquire(self, d):

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.

ParametersdThe deferred that has been canceled.
def acquire(self):

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.

Returnsa Deferred which fires on lock acquisition. (type: a Deferred)
def release(self):

Release the lock. If there is a waiting list, then the first Deferred in that waiting list will be called back.

Should be called by whomever did the acquire() when the shared resource is free.

API Documentation for twisted, generated by pydoctor at 2020-03-25 17:34:30.