
09.11.2008, 15:04
|
|
Гарант Форума
Регистрация: 22.01.2005
Сообщений: 267
Провел на форуме: 1982081
Репутация:
1067
|
|
Digimortal
Код:
my $threads = 20;
threads->new(\&start) for (1..$threads);
$_->join for threads->list;
sub start
{
my $tid = threads->tid();
print "[+] $tid THREAD STARTED\n";
my $thr = threads->object($tid);
if ($thr->is_joinable())
{
print "[+] joining $tid thread\n";
$thr->join();
}
else {print "$tid thread already joined\n";}
sleep 15;
while (1)
{
# проверяем вдруг какие-то потоки сдохли
$thr_cnt = threads->list();
share($thr_cnt);
#print "[+] $thr_cnt for $tid THREAD\n";
if ($thr_cnt < $threads)
{
$cnt = $threads - $thr_cnt;
threads->new(\®) for (1..$cnt);
print "[+] NEW THREAD ADDED BECAUSE OLD ONE IS GAY-THREAD\n";
}
# working part
}
}
|
|
|