On 9/28/05, Greg Ewing <greg.ewing at canterbury.ac.nz> wrote: > Nick Coghlan wrote: > > > PEP 342's yield expressions can probably be used to help address that problem, > > though: > > > > class SomeAO(ActiveObject): > > def processSomeMessage(self): > > msg = yield > > # Do something with the message > > next_msg = yield makeSomeBlockingCall(self) > > # Do something with the next message > > I don't see how that helps, since makeSomeBlockingCall() > is evaluated (and therefore blocks) *before* the yield > happens. Sounds like makeSomeBlockingCall is just misnamed (probably depending who you ask). I wrote a small library recently that wraps Twisted's Deferreds and asynchronous Failure objects such that you can do stuff like try: x = yield remoteObject.getSomething() except Foo: print "Oh no!" This is just a 2.5-ification of defgen, which is at twisted.internet.defer.{deferredGenerator,waitForDeferred}. So anyway, if your actor messages always return Deferreds, then this works quite nicely. -- Twisted | Christopher Armstrong: International Man of Twistery Radix | -- http://radix.twistedmatrix.com | Release Manager, Twisted Project \\\V/// | -- http://twistedmatrix.com |o O| | w----v----w-+
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4