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
[email protected]
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com