[Python-Dev] Active Objects in Python (original) (raw)

Bruce Eckel BruceEckel-Python3234 at mailblocks.com
Wed Sep 28 04:38:11 CEST 2005


Oops. I forgot to add that to the list. Yes, in the working example of Active Objects that I've written in Java J2SE5, when you send a message to an active object, you get back a Future, which I suspect would be the same as your Deferred.

Tuesday, September 27, 2005, 7:41:27 PM, Christopher Armstrong wrote:

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 > nextmsg = 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 at python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/bruceeckel-python3234%40mailblocks.com

Bruce Eckel http://www.BruceEckel.com mailto:BruceEckel-Python3234 at mailblocks.com Contains electronic books: "Thinking in Java 3e" & "Thinking in C++ 2e" Web log: http://www.artima.com/weblogs/index.jsp?blogger=beckel Subscribe to my newsletter: http://www.mindview.net/Newsletter My schedule can be found at: http://www.mindview.net/Calendar



More information about the Python-Dev mailing list