Форум — Development Реентрантны ли функции Gtk? 0 0 А именно gdk_pixbuf_render_to_drawable, gdk_draw_rectangle, gtk_widget_queue_draw_area . В пмоей программе несколько потоков, надо ли это учитывать? Ссылка
Хотя точнее так сказать вопрос - можно ли в них входить повторно? wieker ★★ (17.06.09 17:01:38 MSK) автор топика Показать ответ Ссылка
Ответ на: комментарий от wieker 17.06.09 17:01:38 MSK но есть костыли :) http://library.gnome.org/devel/gdk/stable/gdk-Threads.html rincewind (17.06.09 18:06:34 MSK) Показать ответы Ссылка
Ответ на: комментарий от rincewind 17.06.09 18:06:34 MSK Я что-то не понял, как там работает пример. Там же gtk_main между gdk_thread_enter и gdk_thread_leave стоит, то есть блокировка включена, как же два других потока работают? wieker ★★ (17.06.09 19:14:48 MSK) автор топика Ссылка
Ответ на: комментарий от rincewind 17.06.09 18:06:34 MSK И спасибо за ответ, это то что нужно. wieker ★★ (17.06.09 19:17:48 MSK) автор топика Ссылка
В двух разных нитках нельзя одновременно использовать gtk или gdk. Надо брать локи (gdk_threads_{enter,leave}). Когда главный цикл входит в состояние ожидания, он снимает лок, а когда получает событие, получает лок. dmitry_vk ★★★ (17.06.09 23:33:29 MSK) Показать ответ Ссылка
Ответ на: комментарий от dmitry_vk 17.06.09 23:33:29 MSK >Когда главный цикл входит в состояние ожидания, он снимает лок, а когда получает событие, получает лок. Ага, теперь понятно, как работает пример, спасибо. wieker ★★ (18.06.09 16:33:02 MSK) автор топика Показать ответ Ссылка
Ответ на: комментарий от wieker 18.06.09 16:33:02 MSK Вот только если канпелировать под win32, фокус с enter/leave не пройдет, всё должно залочиться yoghurt ★★★★★ (19.06.09 08:22:09 MSK) Ссылка