in reply to Re^7: multithreaded tcp listener with IO::Socket
in thread multithreaded tcp listener with IO::Socket
hello, first of all thanks a lot for posting that code, it has been of great help for me.
Now, I found I need to make some changes for it to work. I'm starting a process to serve http request on a port. Client is doing basically this:
$ua = LWP::UserAgent->new; my $req = HTTP::Request->new(GET => "http://localhost:8998/foo"); $req->authorization_basic('fo', 'fi'); my $res = $ua->request($req) ;
The thing is it looks I really need to close the socket in sub Run after the sub _thread opened the dequeued file_no. . In other words, instead of :
while( $Qclean->pending ) { my $fno = $Qclean->dequeue(); close delete $self->{ Clients }{ $fno }; }
I need to do:
my $fno = $Qclean->dequeue(); close delete $self->{ Clients }{ $fno };
before letting it arrive to the "local $_ = $server->accept " again.
If I don't do that,then looks like the "close" of the fd I get in sub _thread does not really closes the socket? The thing is "$ua->request($req)" at the client does not return until I kill the server process if I don't actually close the socket in sub Run.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^9: multithreaded tcp listener with IO::Socket
by BrowserUk (Patriarch) on Nov 15, 2010 at 12:02 UTC | |
by txemy (Initiate) on Nov 15, 2010 at 12:52 UTC |