LINUX.ORG.RU

gdk_flush из параллельного потока - сегментация


0

0

Доброго времени суток.

Ситуация такая: есть программа, в которой необходимо выводить на экран лог работы параллельного потока.

Сейчас это реализовано так: есть дополнительный поток, который следит за GtkAsyncQueue и при появлении в нем новых сообщений выводит их в GtkTextView.

Проблема: непредсказуемая сегментация при gdk_flush после добавления нового текста в GtkTextView.

Что делать? Может кто подскажет лучшее решение проблемы?

P.S. кстати, а что нужно сказать GtkScrolledWindow чтобы он всегда показывал нижний левый край дочернего виджета?

anonymous

>Что делать?

Исправлять мозги. Читать http://library.gnome.org/devel/gdk/unstable/gdk-Threads.html

> Может кто подскажет лучшее решение проблемы?

Данные передавать из другого потока через g_queue/g_signal. Добавлять их в окно из основного потока. Из второго потока с gtk не работать. В простейшем случае данные можно передавать в основной поток c помощью g_idle_add.

> P.S. кстати, а что нужно сказать GtkScrolledWindow чтобы он всегда показывал нижний левый край дочернего виджета?

gtk_adjustment_set_value (vadjustment, vadjustment->upper - vadjustment->page_size);

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