On Tue, Feb 10, 2004 at 09:00:01PM -0800, Scott wrote:
> Rocco Caputo wrote:
> >
> >I'm glad you don't support inter-session calling.  You really can't do
> >that without at least setting POE::Kernel's notion of the active
> >session.  Otherwise a callee's alarms (and other resources) will be
> >associated with the caller session.  That's obviously wrong.
> >
> Thats only reason #1 I dont support inter-session calling.
> Reason #2 is that I dont even agree call() should be performed 
> inter-session.

[lots of good stuff removed; go back and read it]

> And that was the reason I didn't understand why Kernel->call() was
> faced with so much overhead, of course that is until I realized, it
> really shouldn't be using _dispatch_event() but it had to, because
> inter-session calling was permitted.  So garbage collection routines
> and etc were absolutely neccesary.  In fact, there isn't much that
> Kernel->call() does that isn't neccesary aside from a few bitwise
> operations to determine the current type of event and the neccesary
> course of action.  But much of the overhead of Kernel->call() was
> easily disposable by disallowing inter-session calls.
> 
> Because a serious API change, such as changing the arguements to an
> existing method or subroutine (for instance, removing the session
> arguement from Kernel->call()) is difficult to accomidate, I was
> greatly in favor of the RFC for Revising call.
> 
> Unfortunately, the nature of ->call() makes me think it should in fact
> be a Kernel method, however that kernel method already exists and is
> flawed for the above noted reasons.  And this is the rational for
> adding a call() method to POE::Session.

Hmm... is there anything stopping you from patching POE::Kernel::call()
to check the resolved destination session against the caller session,
and bypassing _dispatch_event() if they're the same?

> (Trying anxiously to being a discussion on the mailing list... ;))

Here too.  Thanks for reposting it.

-- 
Rocco Caputo - [EMAIL PROTECTED] - http://poe.perl.org/

Reply via email to