
On Fri, Mar 05, 2004 at 11:19:01AM -0500, Itamar Shtull-Trauring wrote:
class Lock: """A lock for event driven systems."""
I have very very similiar looking code on my harddisk... what inspired you to write this? :)
def release(self): """Release the lock.
Should be called by whoever did the acquire() when the shared resource is free. """ assert self.locked self.locked = 0 if self.waiting: # someone is waiting to acquire lock self.locked = 1 d = self.waiting.pop(0) d.callback(self)
In my version, I had a 'throttle' instance attribute: d = self.queue.pop(0) if self.throttle: reactor.callLater(0, d.callback, self) else: d.callback(self) Considering I never actually *used* my version, this might be a premature feature addition, though.
def _releaseAndReturn(self, r): self.release() return r
I wonder if this convenience function should also call log.err if isinstance(r, failure.Failure)? But that's probably just premature featuritus again :) So, where in Twisted is a good spot for it? twisted.internet.util? -Andrew.