@pochrac в одном из скриптов попробовал узнать размер изображение где все отлично работает там тоже пишет 00
Использование глобальной переменной/список как память для потоков. Проблема undefined и null при записи.
-
Есть главный поток который взывает функцию через блок Вызов в функции в несколько потоков.
Потоки которые вызываться имеют циклы, и по мере прохождения цикла имеют свойство фейлится и падать, соответственно после падения отсчет цикла начинается с условного начала а не с того момента где упал.
Поэтому используя глобальную переменную с списком MEMEORY я попытался записывать условный CYCLE_INDEX в локальный список MEMORY в элемент с индексом THREAD_INDEX и потом обновлял им глобальную переменную MEMORY. В локальном списке MEMORY также появляются и элементы типа undefined если THREAD_INDEX = 3 к примеру то масив имеет 3 переменные undefined и один элемент 4 - CYCLE_INDEX. И вроде бы все должно работать корректно но вот не задача, при Установке локального списка MEMORY на его глобальную переменную все элементы что в локальном списке MEMORY были как undefined в глобальном превращаются на null. Это привод к тому что старшие потоки при сохранении своих данных с локального списка в глобальную переменную заменяют все данные предыдущих потоков на null так как в этом потоке этих данных в локальном списке не существует.Вообще костыли с работой с списками в глобальных переменных судя по топикам существует с самого начала. Жаль что не реализованы нормальные Глобальные списки которые можно изменять прямо а не переводя в локальную переменную, так и еще с этим багом где undefined превращается в null.
Есть ли знатоки как решить эту проблему или может уже у кого-то, есть реализованая логика буфера памяти для потоков на случай его фейла