Я хочу сделать следующие вещи из основного потока / процесса:
Связь с другим процессом с использованием канала.
Создание потоков для выполнения определенной задачи.
Дождитесь завершения всех потоков.
Ниже приводится псевдокод, который я пытаюсь:
use threads;
use IO::Handle;
sub dummy {
print "\n!!!!". $$;
return 0;
}
open($handle, "| cat -v") || die "Unable to open connection to BT Driver: $!\n";
$handle->autoflush(1);
#close $handle; If I uncomment this, threads can be joined. But I don't want to terminate this child process.
$thr2 = threads->create(\&dummy);
sleep 2;
print "\n$thr2";
foreach $thr (threads->list(threads::joinable))
{
print "\nIam here";
print "\n!!!". $thr;
$thr->join();
}
Код застревает, когда я пытаюсь присоединиться к потоку, даже если он присоединяется.
Я что-то здесь не так делаю?
Я использую Perl 5.10.0