Re: POE::Component::Server::TCP bug fixes, possibly incompatible
Michael Fowler <[email protected]>
| Newsgroups | gmane.comp.lang.perl.poe |
|---|---|
| Message-ID | <[email protected]> |
On Wed, Jul 15, 2009 at 04:08:48AM -0400, Rocco Caputo wrote:
> For starters, $_[ARG0] isn't guaranteed to contain anything in particular.
Well, it's guaranteed to contain whatever was passed as the 'args'
argument to the POE::Session constructor, right? When the session is
constructed, 'args' is [ $socket, $client_args ]. That 'args' value
needs to remain, because the POE::Wheel::ReadWrite constructor needs it.
Having ClientConnected then mirror _start in terms of arguments seems
reasonable.
> I think you're almost right. The correct behavior would be for
> ClientArgs to align with @_[ARG0..$#_]. This still breaks current code,
> but it's cleaner.
Well, I don't mind breaking old code, but I think ARG0 being the socket
should be preserved. Reaching into $heap->{client}->get_input_handle
seems awkward. Then again, perhaps it's breaking an abstraction to have
direct access to the socket outside of POE::Wheel::ReadWrite.
The code I have that actually needs it would benefit from the clarity of
having the socket passed as ARG0. Whether or not this breaks some
possible future change in something...
--
Michael Fowler
www.shoebox.net