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

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

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: QWaitCondition: Destroyed while threads are still waiting  (Прочитано 15641 раз)
serg_hd
Хакер
*****
Offline Offline

Сообщений: 668



Просмотр профиля
« Ответ #15 : Март 11, 2010, 19:32 »

Да и собственно ошибка:
Код
Java
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x05320257, pid=16580, tid=6260
#
# Java VM: Java HotSpot(TM) Client VM (10.0-b19 mixed mode, sharing windows-x86)
# Problematic frame:
# C  [QtWebKit4.dll+0x70257]
#
# An error report file with more information is saved as:
# C:\...\hs_err_pid16580.log
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
QWaitCondition: Destroyed while threads are still waiting
 
Записан

kubuntu/Win7/x64/NetBeans
niXman
Гость
« Ответ #16 : Март 11, 2010, 22:20 »

Цитировать
EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x05320257, pid=16580, tid=6260
вот с этого и нужно было начинать! причина в этом!

а -
Цитировать
QWaitCondition: Destroyed while threads are still waiting
следствие!
Записан
muzhig
Гость
« Ответ #17 : Май 27, 2010, 12:10 »

Мое мнение, что ошибка связана с двумя вещами:
сетевым соединением и завершением потока.

У меня есть потомок QThread у которого есть член QTcpSocket.
В соответствии с сигналами, сокет открывается и закрывается.

В деструкторе потока я делаю принудительный дисконнект, потом жду пока дисконнектится и сделается quit(), и объект потока уничтожается.

* Если я не делал коннекта ни разу, ошибки не возникает
* Если я сделал коннект и уничтожаю поток- получаю ошибку при попытке disconectFromHost() в деструкторе, природу которой я пока изучаю
* Если я сделал коннект и дисконнект, после чего уничтожаю поток- возникает описанная автором ошибка с QWaitCondition
* Если я сделал коннект и дисконнект, после чего подожду немного, а только потом уничтожаю поток- ошибки не возникает.

напрашивается вывод: ошибка с QWaitCondition связана с тем, что сокет нельзя уничтожать сразу после дисконнекта.
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


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