Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.14.142.115] |
|
Сообщ.
#1
,
|
|
|
Добрый день,
Помогите побороть проблему: есть скрипт, последовательно вызывающий другой скрипт (с параметрами). На уровне: foreach $tree (@treeListIn) { my ($statusOut, @lines) = call_cmd_ex($_); if ($statusOut) { die "Error\n"; } } Я эту "штуку" решил сделать многопоточной: foreach $tree (@treeListIn) { while (threads->list(threads::running) > 0) { log_msg("Waiting for worker\n"); sleep(5); } threads->create(sub { my ($statusOut, @lines) = call_cmd_ex(@_); return ($statusOut); }, $_); } И вот тут начинается самое интересное: второй скрипт успешно стартует, успешно запускает еще один процесс (и он успешно завершается), запускает следующий task и он (этот task) "подвисает": State: Wait:WrLpcReply. Подскажите из-за чего такое может происходить (и что с этим делать). С уважением... P.S. Windows XP, CLI, Perl 5.8.8 |
Сообщ.
#2
,
|
|
|
В FAQ'е есть подробный пример работы с потоками.
Но так вот сходу поглядев, после первой обработки вы более ничего не обрабатываете. |
Сообщ.
#3
,
|
|
|
Я этих примеров уже средних размеров кучку просмотрел...
А чего именно я не обрабатываю? |