Код: Выделить всё
use threads;
....
my @threads;
for(@array){push @threads,threads->create(\&funcmain,@var);}
for (@threads){$_->join}
....
sub funcmain
{
.....
&func1
.....
}
sub func1
{
...
&func2
...
#рекурсия
&func1
}
sub func2
{
....
}суть следущая: есть фунция funcmain, которая нужна для того что пускать потоки с какими то переменными, она в свою очередь вызывает функцию рекурсию func1, которая в свою использует третью функцию.
у всех функций только локальные переменные.
работа скрипта всегда заканчивается ошибкой Segmentation fauled, этой ошибкой скрипт завершается в разное время, может 5 минут поработать, 10, 20.... я заметил, что он вылетает когда больше половина потоков завершили работу.
ошибочно ли я организую пототи... т.е. можно ли запускать функцию в отдельный поток которая использует другие функции?, хачу заметитить что эти потоки работают только со своими данными(файлы, каталоги).