On 9/28/05, Greg Ewing <[EMAIL PROTECTED]> 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-+ _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com