Re[2]: [Volgograd] знатокам GTK
Vitalik
vetalman на mail.ru
Вт Дек 23 04:13:28 MSK 2003
> http://www.gtkmm.org/gtkmm2/docs/reference/html/classGlib_1_1Dispatcher.html
используется GTK1.2 и просто Си
извиняюсь, что сразу не предоставил соответствующее инфо.
кстати о неполноте GTK документации.
в случае многозадачности GTK имеет известный механизм защиты.
gdk_threads_enter()/gdk_threads_leave()
те
gdk_threads_enter();
вызовы gtk функций
gdk_threads_leave();
в случае callback функций на gtk сигналы, которые вызываются из GTK
треда, они уже находятся в такой защищенной секции
для входа в GTK цикл нужно:
gdk_threads_enter();
gtk_main();
gdk_threads_leave();
другими словами в GTK треде не нужно этого делать, тк он уже в такой
секции.
так вот callback на gtk_timeout_add не следует этому правилу!
как будто внутри gtk стоит
gdk_threads_leave();
timout_callback();
gdk_threads_enter();
и я не нашел этого в доках.
ЗЫ
этот механизм показался мне крайне неудобным.
приходится писать дополнительную надстройку над этим вызовом, где учитывается
текущий тред и соответственно необходимость в вызове этих функций.
Если я где-то ошибаюсь, будте добры поправить меня.
--
Best regards,
Vitalik mailto:vetalman на mail.ru
Подробная информация о списке рассылки Volgograd