Changeset 25497 for gs2-extensions


Ignore:
Timestamp:
2012-04-27T09:50:41+12:00 (12 years ago)
Author:
jmt12
Message:

Replacing die() with warning and retry if opening of server end of socket fails

File:
1 edited

Legend:

Unmodified
Added
Removed
  • gs2-extensions/tdb-edit/trunk/src/perllib/SocketsSwimmingThreadPoolServer.pm

    r25410 r25497  
    8888  my %socket;
    8989  # lsocket => listerner [sic] socket
    90   my $lsocket = new IO::Socket::INET(%{$self->{socket_defaults}}, Proto => 'tcp', Listen => 1, Reuse => 1);
    91   die "Can't create listerner socket. Server can't start. $!." unless $lsocket;
     90  my $lsocket;
     91  while (!defined $lsocket || !$lsocket)
     92  {
     93    $lsocket = new IO::Socket::INET(%{$self->{socket_defaults}}, Proto => 'tcp', Listen => 1, Reuse => 1);
     94    if (!defined $lsocket || !$lsocket)
     95    {
     96      print STDERR "Error! Can't create listerner socket. Server can't start. Trying again...\n$!.";
     97      sleep(1);
     98    }
     99  }
    92100  until($stop)
    93101  {
     
    154162    $closed_queue->enqueue($n);
    155163  }
     164  # Properly rejoin thread
     165  my $thread = threads->self();
     166  if (!$thread->is_detached())
     167  {
     168    $thread->join();
     169  }
    156170}
    157171
Note: See TracChangeset for help on using the changeset viewer.