in reply to Re^2: Double Click of Death on Perl Web Server
in thread Double Click of Death on Perl Web Server

Apologies for the typo:

my $server = IO::Socket::INET->new(...);

while (my $client = $server->accept) {
  while (<$client>) {
    ...
  }
  ...
  close $client;               # server dies
  eval { close $client }       # does not die
  shutdown $client, 2;         # dies
  eval { shutdown $client, 2 } # does not die
}
close $server;
  • Comment on Re^3: Double Click of Death on Perl Web Server

Replies are listed 'Best First'.
Re^4: Double Click of Death on Perl Web Server
by Anonymous Monk on Oct 03, 2018 at 19:23 UTC
    Fork it:
    my $server = IO::Socket::INET->new(...); while (my $client = $server->accept) { if (my $pid = fork()) { # parent waits for another connection close $client } elsif (defined $pid) { # child handles the request while (<$client>) { ... } ... close $client; close $server; exit; } } close $server;

    2018-10-06 Athanasius changed pre tags to code tags