|
|
|
Плагин графического интерфейса |
|
|
cirus |
7.3.2016, 22:06
|
Elder
Сообщений: 3.480
Регистрация: 18.8.2014 Группа: Пользователи Наличность: 26745
Пользователь №: 16.971
Возраст: 29
|
На счёт этой ошибки: https://forum.uokit.com/index.php?s=&sh...st&p=219482Вчера тестил скрипт, кликал на кнопки пилотом, работало часа 2 без проблем, причём задержка была 0. Потом запустил 2 окна lineage2, еще где-то час работало без проблем, как только запустил третье окно l2 вылезла эта ошибка. Стал пробовать запускать и выгружать окна во время работы скрипта, ошибок не было никаких. Решил что совпадение. Сегодня было запущено 2 окна l2, часа 1,5 никаких проблем, но уже с задержкой 100 мс, как только запустил третье окно l2 та же ошибка вылезла. Как связан запуск приложения с работой плагина не знаю, но когда я только написал про эту ошибку первый раз, то никакие окна не загружались.
|
|
|
|
DarkMaster |
9.3.2016, 15:20
|
Модератор UOPilot
Сообщений: 9.467
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 27725
Пользователь №: 11.279
|
А там не все так просто. Можно еще натворить взаимную блокировку процессов и будет рыба. Смысл будет тот же самый - считан флаг, что свободно, а оно уже начало заниматься, но не успело. Полноценную многопоточку с очередью в таком ключе никогда не реализовывал на практиктике. Если надо добавить данные в очередь в другом потоке, который эту очередь постепенно очищает, то я представляю, как это сделать, а в данном случае - не очень. Ну или наоборот раздать на n потоков одну очередь. Мне кажется надо думать над созданием некоторого списка в котором будут хранится таски на основе номера вкладки или TID процесса. Далее эти таски будет собирать некоторый коллектор, после сбора удалять. Лучше использовать именно список, а не массив - проблем меньше будет с изменением размера, добавлением/удалением. Грубо говоря что-то вроде https://forum.uokit.com/index.php?s=&sh...st&p=209321но уже в контексте нормального языка и некоторых ограничений из-за отсутствия прямого доступа к переменным скрипта, в виде списка и, скорее всего, идентификаторы завязывать на TID, а поток не закрывать пока таск не будет в очередь помещен. В бусте что-то готовое есть для этого дела кстати. Там есть и очередь на n потоков и n потоков на одну очередь.
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____
|
|
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|