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