|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : warlock 2:5020/400 05 Sep 2005 11:27:37 To : All Subject : FreeBSD + Perl ithreads --------------------------------------------------------------------------------
Всем привет,
Hаткнулся на утечку памяти в связке FreeBSD 5.4 + Perl 5.8.7 + ithreads.
Простой пример, который легко загоняется в корку:
#!/usr/bin/perl
use threads;
use strict;
use warnings;
sub thread_func
{
my $i = shift;
print "$i\n";
}
sub main
{
my (@thread, $i);
for ( $i = 0; $i < 400; $i++ ) {
$thread[$i] = threads->create("thread_func",$i);
#$thread_ID -> detach();
}
for ( $i = 0; $i < 400; $i++ ) {
$thread[$i] -> join();
}
sleep(10);
for ( $i = 0; $i < 400; $i++ ) {
$thread[$i] = threads->create("thread_func",$i);
}
for ( $i = 0; $i < 400; $i++ ) {
$thread[$i] -> join();
}
sleep(10);
}
&main();
Какието ресурсы (видмо интерпритатор для каждой триды)не отпускается после
завершения. И естсесвенно как только дело доходит до свопа - перл падет в
корку.
Результат одинаково отрицательный как с join так и с detach.
Есть у когонить идеи как боротся?
Спасибо
warlock
--- ifmail v.2.15dev5.3
* Origin: elcat (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/85787bdf0baa.html, оценка из 5, голосов 10
|