logo       
Google Custom Search
    AddThis Social Bookmark Button

Re: Memory Leak in POE::Component::Server::TCP: msg#00046

Subject: Re: Memory Leak in POE::Component::Server::TCP
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 ...
<Prev in Thread] Current Thread [Next in Thread>