Здравствуйте, гость ( Вход | Регистрация )

11 страниц V « < 3 4 5 6 7 > »   
Ответить в эту темуОткрыть новую тему
> Плагин графического интерфейса
Cockney
сообщение 7.3.2016, 21:42
Сообщение #81


********

Master
Сообщений: 1.395
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 21064
Пользователь №: 16.156



Цитата(DarkMaster @ 29.7.2015, 1:52) *

если вопрос по созданию окна, то в инит его не надо пихать, т.к. получится что-то не очень вменяемое и не понятно с какими вкладками связанное либо находящееся вообще вне вкладок. Если я не ошибаюсь, то в каждой вкладке пилота своя копия плагина и работать они будут незваисимо.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 7.3.2016, 22:06
Сообщение #82


**********

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 та же ошибка вылезла.
Как связан запуск приложения с работой плагина не знаю, но когда я только написал про эту ошибку первый раз, то никакие окна не загружались.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 7.3.2016, 22:23
Сообщение #83


********

Master
Сообщений: 1.395
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 21064
Пользователь №: 16.156



Чудеса. Плагин никак не связан с линейкой. Абсолютно. Более того, он не связан вообще с другими окнами системы. Что может мешать работе - не знаю. Лично у себя такого не наблюдаю. Может и причуды винды, а может и моя криворукость.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 7.3.2016, 22:36
Сообщение #84


***********

Модератор UOPilot
Сообщений: 9.467
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27725
Пользователь №: 11.279



Цитата
если вопрос по созданию окна, то в инит его не надо пихать, т.к. получится что-то не очень вменяемое и не понятно с какими вкладками связанное либо находящееся вообще вне вкладок. Если я не ошибаюсь, то в каждой вкладке пилота своя копия плагина и работать они будут незваисимо.

Ну дык "если не ошибаюсь". Вроде последующие тесты это опровергли...

Изначально основывался на предположении кнайта, который пытался вспомнить что он там натворил)


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 7.3.2016, 22:37
Сообщение #85


********

Master
Сообщений: 1.395
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 21064
Пользователь №: 16.156



Цитата(DarkMaster @ 7.3.2016, 22:36) *

Вроде последующие тесты это опровергли...



Вот так.....
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 7.3.2016, 22:39
Сообщение #86


***********

Модератор UOPilot
Сообщений: 9.467
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27725
Пользователь №: 11.279



самый простой способ проверить:
1 функция - записывает строку с параметром
2 функция - возвращает эту строку

вызови их из разных вкладок.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 7.3.2016, 22:53
Сообщение #87


********

Master
Сообщений: 1.395
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 21064
Пользователь №: 16.156



Когда происходит событие(от 1 скрипта), плагин запоминает имя окна, от которого произошло событие, этот же скрипт получает описание события(внутренняя структура плагина о событии очищается), и в это же время, скрипт 2 тоже получает событие,(и вот тут он обращается к пустой структуре события, т.к скрипт забрал пред. события, а новое еще не обработалось).

вот кажется и возможная проблема. поэтому иногда задержка и прокатывает. однако теперь не ясно при чем тут окна другие.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 7.3.2016, 23:00
Сообщение #88


***********

Модератор UOPilot
Сообщений: 9.467
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27725
Пользователь №: 11.279



элементарно. больше окон - больше нагрузка на камень, больше необходимые задержки. Как только количество окон достигает того количества, которое может загрузить все ядра, то мы получаем резкий скачек необходимых задержек.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 7.3.2016, 23:04
Сообщение #89


********

Master
Сообщений: 1.395
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 21064
Пользователь №: 16.156



Да, но это сколько окон нужно?

+ плагин обрабатывает события методом он-евент, а не циклом, что как бы дает маленькую нагрузку.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 7.3.2016, 23:34
Сообщение #90


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26745
Пользователь №: 16.971
Возраст: 29



Цитата
элементарно. больше окон - больше нагрузка на камень, больше необходимые задержки. Как только количество окон достигает того количества, которое может загрузить все ядра, то мы получаем резкий скачек необходимых задержек.

Запуск одного окна l2 может вызвать ошибку. Естественно не всегда, можно и 10 окон запустить и всё работает. Кстати, как ни странно, закрываешь ошибку и всё работает дальше.
Видео с ошибкой:
https://yadi.sk/d/pCZgyAgWpyMmJ
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 8.3.2016, 9:41
Сообщение #91


***********

Модератор UOPilot
Сообщений: 9.467
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27725
Пользователь №: 11.279



А запись и чтение одновременно не происходят случаем? Чтение оно вроде как безопасно, но учитывая, что там должны быть структуры, то может получиться ситуация когда считывается половина старой и половина новой. Результат поведения после этого не ясен.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 8.3.2016, 11:24
Сообщение #92


********

Master
Сообщений: 1.395
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 21064
Пользователь №: 16.156



В плагине?структура(это я так обозвал) на самом деле просто несколько отдельных переменных. Может, о чем я и говорил, первый скрипт очищает эти переменные, очистил часть, а тут второй скрипт обращается либо к пустым данным, либо к данным, которые косвенно связаны с уже пустыми переменными.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 8.3.2016, 12:11
Сообщение #93


***********

Модератор UOPilot
Сообщений: 9.467
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27725
Пользователь №: 11.279



очередь надо, чтобы исключить подобные варианты.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 9.3.2016, 14:15
Сообщение #94


********

Master
Сообщений: 1.395
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 21064
Пользователь №: 16.156



Эт понятно. Каким методом? читал про мьютексы, но они вроде только для кодовых потоков. Флаг какой-нибудь завести и таймер на него повесить?
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 9.3.2016, 15:20
Сообщение #95


***********

Модератор 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____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 10.3.2016, 18:28
Сообщение #96


********

Master
Сообщений: 1.395
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 21064
Пользователь №: 16.156



Сильно загнул).
-------------------
По поводу перекосов с флагом. Да, такое может быть, только думаю не дойдет до этого, ибо 1 байт обработать очень быстрое дело, не то, что сейчас, считывание/запись структуры.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 10.3.2016, 18:57
Сообщение #97


***********

Модератор UOPilot
Сообщений: 9.467
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27725
Пользователь №: 11.279



Посмотри буст там есть готовое решение. Я с полгода назад ковырял многопоточку, неоднократно натыкался. У меня задача была несколько иная и подключение бустовских либ мне показалось слишком громоздким - там обошлось все проще.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 11.3.2016, 23:17
Сообщение #98


********

Master
Сообщений: 1.395
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 21064
Пользователь №: 16.156



Апдейт.

-Пофикшены клики. Теперь одиночный клик не лезет перед двойным.


Обработка одиночного клика идет с небольшой задержкой, так и должно быть.


Прикрепленный файл  Test0231.zip ( 97,2 килобайт ) Кол-во скачиваний: 385
или Диск
-------------------------
На подходе изменение цвета элементов.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 11.3.2016, 23:43
Сообщение #99


********

Master
Сообщений: 1.395
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 21064
Пользователь №: 16.156



Предлагаешь мне буст переписать?)
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 12.3.2016, 7:41
Сообщение #100


***********

Модератор UOPilot
Сообщений: 9.467
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27725
Пользователь №: 11.279



Цитата
Предлагаешь мне буст переписать?)

В смысле? Я наоборот тебе предлагаю взять готовую либу из буста, которой можно собрать такую очередь. ИМХО самый правильный вариант в данном случае.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

11 страниц V « < 3 4 5 6 7 > » 
Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 27.4.2024, 13:23
Designed by Nickostyle