Russian Qt Forum
Сентябрь 30, 2024, 18:31 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Segfault при отрисовке QImage в потоке...  (Прочитано 13044 раз)
Hordi
Гость
« Ответ #15 : Декабрь 26, 2008, 12:03 »

Хотя конечно reentrant не означает потокобезопасность...
Записан
hordi1
Гость
« Ответ #16 : Декабрь 30, 2008, 10:44 »

Отправил проблему в суппорт. Ответы коммерческой поддержки меня обрадовали:)
Ответ номер раз:

Painting from outside the GUI thread onto a QWidget or QPixmap is not supported.  You will need to emit a signal from the thread and have the GUI thread do the painting for you.  You can find more information about this here:

http://doc.trolltech.com/4.4/threads.html#painting-in-threads


Т.е. никто вложенный пример даже не смотрел и письмо внимательно не читал, хотя там 2 строки написано... Об этом и было сказано товарищам во втором письме. Ответили опять с потолка, но уже чуть потеплее...

Systems without FontConfig cannot render text outside the GUI thread even if it is onto a QImage.  Font metrics fall into this category.
You can test if font rendering can be used outside the GUI thread with the QFontDatabase::supportsThreadedFontRendering API.

I did take a look at the example.  I appreciate you writing a simple example that allows us to pinpoint the problem rather quickly.


На это письмо опять было отвечено, что FontConfig умеет место быть и QFontDatabase::supportsThreadedFontRendering возвращает TRUE. Ждем третьего ответа... Улыбающийся
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #17 : Декабрь 30, 2008, 11:38 »

поддержка напоминает Яндекс
там есть такой чувак Платон

пишешь:
Че с моим
так на 1 сообщение пишет - типа посмотрим
и так по циклу

то есть что бы обратить на себя внимание нужно 3-4 письма. Это типа барьер, если ты не отстал - то достоин внимания не студента, а дорогого девелопера.
Записан
Dendy
Гость
« Ответ #18 : Декабрь 31, 2008, 19:30 »

Хотя конечно reentrant не означает потокобезопасность...

Термины reentrant и threadsafe не для классов, а для методов классов и отдельных функций. Часть методов могут быть threadsafe, часть - reentrant. Если все методы threadsafe - класс для удобства называет threadsafe тоже.

Вы всё верно сказали в предыдущем посте. QFontInfo, QFont и QFontMetrics используют атомарные операции для конструкторов и операций присвоения, другими словами они потокобезопастны при использовании локальных копий.

Пишу сейчас проект, который рисует текст с фоне в картинку - несколько раз вывалился с таким же сегфолтом. Как всегда грешил на свои кривые руки и искал ошибку по своему коду. После того как посмотрел исходники QFont понял что подобной ошибки - неправильного использования семейства QFont* - в клиентском коде не может быть в принципе. Значит проблема в самой Qt. Баг-репорт отправить не успел, надеюсь Тролли среагируют на ваше письмо и добавят в багзиллу. Если нет - пишите сюда, будем долбить их вместе.
Записан
hordi1
Гость
« Ответ #19 : Январь 05, 2009, 11:40 »

Троллтечи согласились с ошибкой, кстати зарепорчена была ранее - проблема именно в фонто-зафисимых классах. Пофиксено будет в 4.4.4.

http://trolltech.com/developer/task-tracker/index_html?id=217988&method=entry
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.05 секунд. Запросов: 23.