On Apr 23, 2006, at 22:06, gil.vidals@xxxxxxxxxxxxxxxxxxxx wrote:
Either there is a memory leak in PoCo::Server::TCP or I don't know
how to properly discard the $heap.
Aliases keep sessions alive. In this case, they're probably keeping
PoCo::Server::TCP client sessions around. Try the following
(untested) changes:
#!/usr/bin/perl
use warnings;
use strict;
use POE; #use POE::Session;
use POE::Component::Server::TCP;
use constant ListenAddr => '127.0.0.1';
use constant ListenPort => '31599';
use Data::Dumper;
POE::Component::Server::TCP->new(
Address => ListenAddr,
Port => ListenPort,
#Concurrency => $MAX_CONCURENCY,
ClientConnected => sub {
my ( $kernel, $heap, $session ) = @_[ KERNEL,
HEAP, SESSION ];
$heap->{my_alias} = "Spider API " . int(rand(time));
$kernel->alias_set($heap->{my_alias});
print('SESS: (Connected)' . $session->ID );
my $dumper = Dumper($heap);
print( $dumper );
},
ClientDisconnected => sub {
my ( $kernel, $heap, $session ) = @_[ KERNEL,
HEAP, SESSION ];
print('SESS: (Disconnected)' . $_[SESSION]->ID );
my $dumper = Dumper($heap);
print( $dumper );
#print( $heap );
delete $heap->{ECHOVAR};
delete $heap->{client};
$kernel->alias_remove($heap->{my_alias});
},
ClientInput => sub {
my ( $kernel, $heap, $session ) = @_[ KERNEL,
HEAP, SESSION ];
print Dumper $_[ARG0];
$heap->{ECHOVAR}{$_[ARG0]}++;
$kernel->yield('shutdown');
$kernel->alias_remove($heap->{my_alias});
},
#InlineStates => { } # end inline states
); # end TCP Server
POE::Kernel->run();
--
Rocco Caputo - rcaputo@xxxxxxxxx
|
Try Searching:
servers, voip, java, networking, microsoft ...
|
|
|
|