Russian Qt Forum

Qt => Qt Embedded => Тема начата: Goshman от Май 15, 2009, 19:00



Название: Подвисает на некоторое время QTimer
Отправлено: Goshman от Май 15, 2009, 19:00
Доброе время суток!
Есть некая embedded железяка на Тионе(arm). Стоят kernel 2.6.24 и qtopia 4.3

На главном виджете есть QStackedWidget на 20 виджетов. Есть QTimer, который является главным таймером приложения и инициирует циклические опросы СОМ-порта (СОМ-порт реализован в отдельном потоке: активен только на время приема-пердачи, в паузах спит), а также обновление состояния (2 раза в секунду) активных виджетов из стэка.

Несколько раз замечал подвисание QTimer'а до нескольких десятков секунд (текущее окно не обновляется, хотя при этом на кнопки приложение реагирует и окна переключаются). Затем таймер начинал "наверстывать" упущенное и в конечном итоге далее работал норамльно. Подвисание замечал в окнах, где отображаются часы с секундами (часы инкрементируются также в главном таймере). "Наверстывание" заключается в том, что секунды начинают менться раза в 3-4 быстрее. Подвисания поймать очень сложно... за час получилось 2 раза в разных местах программы.

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



Название: Re: Подвисает на некоторое время QTimer
Отправлено: nik135 от Май 15, 2009, 21:46
смотри в сторону low-latency linux how-to


Название: Re: Подвисает на некоторое время QTimer
Отправлено: gogi от Июнь 18, 2009, 14:13
Тоже замечал подвисания таймера ???. Обо мне: у меня также железка на базе Тион-270, ядро 2.6.22 с патчем от Зао-Зео (в последнее время даже 2.6.22.19), Qt Embedded 4.5.1.
В углу экрана у меня рисуются часы с полем секунд и по таймеру раз в секунду показания часов обновляются. В отладочных целях иногда пищал пищалкой из этого таймера и сыпал в консоль сообщения, так и заметил глюк.  Так вот замечал, что иногда этот таймер глох на несколько секунд, а потом резко просирался и навёрстывал упущенное.  Проц даже вроде не загружен в такие моменты был, хотя уже и не помню - с глюком особо не разбирался, руки не дошли, просто отметил на будущее.


Название: Re: Подвисает на некоторое время QTimer
Отправлено: Goshman от Июль 01, 2009, 19:16
С подвисаниями QTimer я, кстати, так и не разобрался. Проблема была решена написанием собственного таймера, унаследованного от QThread. Пока полет нормальный.