|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Nick Kostirya 2:5020/400 27 Jan 2004 18:23:27 To : All Subject : fork and IO::Dir -------------------------------------------------------------------------------- Привет, обнаружил вот такую мистику на FreeBSD 4.9-RELEASE FreeBSD 4.9-RELEASE #9: %perl -v This is perl, v5.8.0 built for i386-freebsd Есть перловый скрипт (код приведен ниже), который выполняется бесконечно на фришке. Hа линуже все нормально. Бесконечность пропадает либо при удалении форканья, либо при отказе использования модуля IO::Dir. Hикто с таким не сталкивался? Еще раз напомню, что на линуже все работает. use strict; use warnings; use POSIX ":sys_wait_h"; my $childen = 0; $SIG{CHLD} = \&REAPER; sub REAPER { $SIG{CHLD} = \&REAPER; while (my $pid = waitpid(-1, WNOHANG) > 0){ $childen--; } } sub forking { if (my $pid = fork) { $childen++; } else { die "Cannot fork: $!." unless defined $pid; exit; } } use IO::Dir; my $dir = new IO::Dir "." or warn("Can't open dir: $!."); while (defined($_ = $dir->read)) { print "$dir $$ $_\n"; print $dir->tell(), "\n"; forking(); } --- ifmail v.2.15dev5.1 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/657738e46d36.html, оценка из 5, голосов 10
|