Re: Unbalanced string table refcount

[email protected] (Elizabeth Mattijsen)
Newsgroups perl.ithreads
Message-ID <p05111b0ebc09115ec2a0@[192.168.2.109]>
At 15:30 -0500 12/19/03, Al Tobey wrote:
>  > Why are you doing:
>>
>>     threads->self->yield;
>>
>>  in make_client?  Does the problem occur when you remove this, or 
>>replace it by:
>>
>>     threads->yield;
>
>Mistake, but removing it entirely does not change the result of the
>test.  It's irrelevant and probably stupid - I just put it there to make
>sure that the server could get ready in time.

Have you tried replacing it with a "sleep 5" or something like that? 
That would at least rule out that.


Alternately, could you try this approach:

=====================================================
#!/usr/local/bin/perl -w
use strict;
use threads;

my $server = threads->create( \&make_server );
sleep 1;
my $client = threads->create( \&make_client );

$client->join();
$server->join();

exit 0;

sub make_server {
     require Net::SNPP; Net::SNPP->import;
     require Net::SNPP::Server; Net::SNPP::Server->import;
     my $server = Net::SNPP::Server->new(
         Port => 20001,
         BindTo => 'localhost'
     );
     my $client = $server->client();
     $server->handle_client( $client );
}

sub make_client {
     require Net::SNPP; Net::SNPP->import;
     threads->self->yield;
     my $client = Net::SNPP->new( 'localhost', Port=>20001 );
     $client->send( Pager=>5555555555, Message=>"TEST" );
     $client->quit;
}
=====================================================

This moves the loading of the Net::SNPP modules to run time inside 
the thread.  If this fixes the problem, it would mean that Net::SNPP 
isn't capable of running in different threads.


Liz
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.