Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Ilia Semenov                         2:5000/362.37  19 Jan 2001  15:30:32
 To : All
 Subject : fork в activestate perl?
 -------------------------------------------------------------------------------- 
 
 
 выпрямите руки, плиз. был взят заведомо работающий под *nix исходник, который
 зависал под NT+activestate. исследования вылились в следующее:
 
 никаких ошибок не происходит, но после форка $daemon и $client->daemon указывают
 в другое место в памяти (это понятно) и getsockname на них зависает (а вот это
 мне непонятно).
 
 === cut ===
 use HTTP::Daemon;
 
 STDOUT->autoflush(1);
 
 my $daemon = new HTTP::Daemon
     LocalAddr => "localhost",
     LocalPort => 8888,
     Reuse     => 1,
     Listen    => 40
 or die "HTTP::Daemon failed to initialize: $!\n";
 
 while ( my $client = $daemon->accept )
 {
     defined($client) or die "Child died: ".$daemon->reason;
     print "BEFORE: ".$client->daemon."\n";
     getsockname($client->daemon); print "BEFORE: getsockname OK.\n";
 
     defined(my $pid = fork) or die "Can't fork: $!";
     if ( $pid ) # I am parent
     {
         print "PARENT: ".$client->daemon."\n";
         getsockname($client); print "PARENT: getsockname OK.\n";
         undef($client);
     }
     else # I am child
     {
         print "CHILD: ".$client->daemon."\n";
         getsockname($client->daemon);  print "CHILD: getsockname OK.\n";
         print "child done.\n";
     }
 }
 
 print "parent done.\n";
 === cut ===
 
 это выдает (при одном коннекте) следующее:
 
 BEFORE: HTTP::Daemon=GLOB(0x1a729cc)
 BEFORE: getsockname OK.
 PARENT: HTTP::Daemon=GLOB(0x1a729cc)
 PARENT: getsockname OK.
 CHILD: HTTP::Daemon=GLOB(0x358e43c)
 ...и child повисает.
 
 --- good luck! spider [mailto:root@lavric-nsu-ru] [icq#390333] [voice#328890]
  * Origin: Akademgorodok, Novosibirsk, Russia (2:5000/362.37)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 fork в activestate perl?   Ilia Semenov   19 Jan 2001 15:30:32 
 Re: fork в activestate perl?   Artem Chuprina   22 Jan 2001 16:27:02 
Архивное /ru.perl/39423a67fcdc.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional