Greg Ewing 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.
Chris got it right - I just named the function badly. The idea is that there
would be an interaction with the Active Object's event loop to get the actual
result back once it was available from the thread that actually made the
blocking call. In the meantime, *this* object could continue to handle other
messages.
What the approach allows is to have a single physical thread with a number of
coroutiney-type event handlers running inside it.
Cheers,
Nick.
--
Nick Coghlan | [EMAIL PROTECTED] | Brisbane, Australia
---------------------------------------------------------------
http://boredomandlaziness.blogspot.com
_______________________________________________
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