Ебусь тут чутка с copas во имя загрузки картинок в arizona-mimgui. Загрузка картинок работает.
Проблема в том, что спустя какое-то время без видимой причины игра берёт и крашится с вот таким трейсом:

(нажмите "Да", чтобы посмотреть полный репорт)
По словам Фупа, copas - лучшая из возможных реализаций для асинхронного HTTP/S взаимодействия в Lua. Куда копать?
Аналогичный краш: https://www.blast.hk/threads/79871/
Проблема в том, что у меня нет потоков в хуках. У меня потоки создаются в шести местах:
- строка 65, в функции установки КД для подсказки keyboardHint (аккуратно удаляется при следующем вызове или по завершению задержки)
- строка 83 (такой же)
- строка 99 (аналогично)
- строка 114 (он же)
- строка 206 (main loop библиотеки copas, идёт не более одного раза, потому что напрямую зависит от переменной copas.running)
- строка 984 (поток, в котором загружается изображение - создаётся по одному на картинку в момент её загрузки, очевидно, проблема где-то тут, но она не должна происходить от всего 32 картинок??!?)
Немного поигрался с картинками, во имя реализации инвентаря вынес шестой поток в очередь, ну и добавил main() для собственно обработки этой очереди. Итого у меня на весь скрипт всего семь потоков - main и шесть lua_thread.
Последний такой краш произошёл при загрузке всего ТРЁХ!!! картинок.
Нет, я не идиот, я проверяю, запущен ли поток загрузки в очереди, перед тем, как пускать туда новый.
Проблема в том, что спустя какое-то время без видимой причины игра берёт и крашится с вот таким трейсом:
(нажмите "Да", чтобы посмотреть полный репорт)
По словам Фупа, copas - лучшая из возможных реализаций для асинхронного HTTP/S взаимодействия в Lua. Куда копать?
Аналогичный краш: https://www.blast.hk/threads/79871/
Проблема в том, что у меня нет потоков в хуках. У меня потоки создаются в шести местах:
- строка 65, в функции установки КД для подсказки keyboardHint (аккуратно удаляется при следующем вызове или по завершению задержки)
- строка 83 (такой же)
- строка 99 (аналогично)
- строка 114 (он же)
- строка 206 (main loop библиотеки copas, идёт не более одного раза, потому что напрямую зависит от переменной copas.running)
- строка 984 (поток, в котором загружается изображение - создаётся по одному на картинку в момент её загрузки, очевидно, проблема где-то тут, но она не должна происходить от всего 32 картинок??!?)
Немного поигрался с картинками, во имя реализации инвентаря вынес шестой поток в очередь, ну и добавил main() для собственно обработки этой очереди. Итого у меня на весь скрипт всего семь потоков - main и шесть lua_thread.
Последний такой краш произошёл при загрузке всего ТРЁХ!!! картинок.
Нет, я не идиот, я проверяю, запущен ли поток загрузки в очереди, перед тем, как пускать туда новый.
Последнее редактирование: