@ocorex Вот тут одному недавно про подобное отвечал:
https://community.bablosoft.com/topic/25374/как-можно-исправить-ошибку-vak-sms-action_timeout/4
Почему зависает скрипт после окончания обработки foreach?
-
Есть кубик "Вызов функции в несколько потоков" в этой функции есть цикл Foreach.
Проблема: В режиме Запуск скрипт зависает как только обработает все действия внутри этого Foreach цикла.
Почему?
В записи - норм всё, и код верен. Я проверил, зависает именно после того как закончит обрабатывать все элементы в цикле Foreach.
2.xml
Файл скрипта прикладываю. -
@Nikolas said in Почему зависает скрипт после окончания обработки foreach?:
Есть кубик "Вызов функции в несколько потоков" в этой функции есть цикл Foreach.
Проблема: В режиме Запуск скрипт зависает как только обработает все действия внутри этого Foreach цикла.
Почему?
В записи - норм всё, и код верен. Я проверил, зависает именно после того как закончит обрабатывать все элементы в цикле Foreach.
2.xml
Файл скрипта прикладываю.Ошибка стара как мир.. Внимательно читайте описание действия

Если хотите увидеть проблему в режиме "записи", то перезапустите скрипт и выполните только функцию "funk_mnogopotok"

-
@Nikolas said in Почему зависает скрипт после окончания обработки foreach?:
@Fox Я из Main переношу данные глобалками внутрь многопоточной функции.
Это в Main задаю глобалки:
Юзаю эти глобалки внутри многопоточной функции:
Ну значит выполните действие "выполнить код" с кодом:
_sa = function(id) { log(id) ScriptWorker.SetCurrentAction(id) }в функции funk_mnogopotok. Это позволит точно узнать какие действия вызывают зависание
-
@Nikolas Хотя скорее всего причина в том, что у вас кончаются данные и поток не выполняет ни какую работу и завершается сразу же, а так как повторений у вас указанно очень много, то это вызывает зависание. Если я прав, то действие "сон" в одну секунду в начале функции funk_mnogopotok решит проблему
-
Выполнил внутри функции в самом низу Ваш код, но определять не нужно по сути, потому что я вчера нашел где происходит краш. Я в теме сразу писал, что краш происходит как только Foreach цикл закончит обрабатывать самый последний foreach_data элемент в предложенным ему списке. [[POD_SPISOK_DLA_ODNOGO_POTOKA]] .
Может краш происходит потому что кубик Foreach цикл - это самый последний элемент в функции и он не знает дальше как в Main выйти?)
Вот что в логе после вашего кода:



