On 21-Jun-2001 Rocco Caputo wrote:
> On Thu, Jun 21, 2001 at 04:55:46PM -0400, [EMAIL PROTECTED] wrote:
 
> call() sucks, but it lets wheels pass on their synchronous input
> events to the sessions which own them.  As far as I know, that's the
> only valid reason to use it.
Oh.  True.  Hadn't thought of this.

> Not entirely true.  I use it extensively in the crossword server xwws
> (somewhere at poe.perl.org), but I'd rather not have had to.  Now that
> postbacks exist, the mere act of sending an event can keep the sender
> alive at least until it's delivered.
> 
> Although postbacks across the inter-process boundary are going to fail
> unless the gateway component holds onto them.

Postbacks use closures and coderefs, objects that don't travel well. 
B::DeParse won't save us here, because the far end might be perl 5.004...
or a completely different language, eventually.
 
> Speaking of IKC woes, RPC and cluster computing background papers may
> explain some of the hardships you have/will encounter.  I suppose
> you've already done the research, but I'm suggesting on the off chance
> it could help.

Actually, I dove into IKC with very little research :)  I'm making it all
up as we go.  I suspect a little research would help, yes.  Got pointers?

>> So, how about also allowing a hash ref... or POE::Event object as a
>> specifier for event addresses?
>>     {
>>         to=>'some_session/some_event',
>>         sender=>$_[SENDER],
>>         reply=>'callback_event'
>>         errors_to=>'error_event' # temporary monitor
>>     }
> 
> This looks like the POE::Message prototype I sent you a week or so
> ago.  

It *is* your POE::Message... only I thought you called it POE::Event.

BTW, starting to call events messages would be a Good Thing, imho.

> You're the unofficial interoperability (i14y?) pumpking, so I
> thought I'd run it past you first.
Please implement.  I love it.


> This would also eliminate ARG0..ARG9 for many high-level things, which
> would make mjd happy.  His comments on the subject prompted the
> ARG0..ARG9 depreciation in the TODO file (still only in the "hey, this
> could be a good idea" phase.  no scary breakage yet!), and ultimately
> POE::Message.

This I don't grok...  We'd still need ARG0...ARG9... unless we move all
the POE stuff into another array (a bit like HTML::Mason does).
 
>> of course, all of these could be IKC specifiers.
> 
> POE::Message would also work in stock POE.  I imagined adding hooks to
> the alias/id resolver to pass messages to unknown destinations to a
> resolver/gateway component, if such a beast was loaded.

The publish/subscribe mechanism aleaviates most need for this (otherwise
I would have required said hooks long ago).  However, those hooks could
come in very handy.
 
>> This way, we can ignore call() when playing with IKC.  We can deprecate
>> call().  We can live free!
> 
> Can't depreciate call() in the general sense, sorry.  Wheels need it.
> But as Artur has suggested before on the topic, we can depreciate and
> prevent it from working on any other session but the current one.
> Basically we'd remove the SESSION parameter and have it default to the
> current one.

I agree this would be a good idea.
 
> Cue the pitchforks and torches.

yield() is misnamed!

/me runs, ducks and hides.

-Philip

Reply via email to