LINUX.ORG.RU

[pygtk] странное поведение glib.timeout_add_seconds

 


0

0

Здравствуйте!

Опять проблемы с pygtk. :(
Надо чтобы функция вызывалась по таймеру. Для этого использую указанную в сабже функцию.
Проблема в том, что перед первым вызовом callback-функци прога подвисает (не реагирует на мышь и клаву) и несколько вызовов по таймауту пропускаются.
Через несколько секунд "выплевываются" пропущенные вызовы и прога начинает работать.

Во время вызова по тайм-ауту прога ничем не загружена.
Функция вызываемая по тайм-ауту также не является ресурсоемкой.

★★★★★

Ой, скопипастил не то название функции, хотел написать про glib.timeout_add().
Особого значения это не имеет, т.к. проблемы аналогичные.

ls-h ★★★★★
() автор топика

glib.timeout_add работает асинхронно в glib main loop. Т.е. пока не отработает один callback, другие вызываться не будут. Поэтому долгие операции в событиях нужно выводить в отдельный поток.

snizovtsev ★★★★★
()
Ответ на: комментарий от snizovtsev

Спасибо!
А может как-то проще можно, без нитей?
Мне надо просто таймер с десятыми секунды, чтобы его можно было убрать по id, т.е. типа:
id = add_timer(sec,cllaback)
remove_timer(id)

ls-h ★★★★★
() автор топика

а насчет подвисаний - используй асинхронный ввод/вывод или другую нить и какой-нить sched в ней

pawnhearts ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.