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

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

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Корректное завершение QNetworkReply, без вылетов  (Прочитано 13456 раз)
Kek
Гость
« Ответ #15 : Июнь 29, 2017, 17:15 »

Цитировать
(process:28413): GLib-ERROR **: Creating pipes for GWakeup: Слишком много открытых файлов

Ксттаи да, this у кунама нипричем, я думал, что у него парентом тред, а на самом деле - объект в треде. Так что там ошибки не было.

Краш происходит при попытке создать тред (всего у меня 610 тредов на момент краша) внутри треда Qt Http Thread. Похоже, QNAM сам создает треды.
Вкратце - так (создавать 300 тредов) делать не надо.
У меня было подозрение на потоки и я пробовал оставить только 1 поток, это лишь отложило момент краша, на минуты 2-3  10-20 Грустный
« Последнее редактирование: Июнь 29, 2017, 17:33 от Kek » Записан
Kek
Гость
« Ответ #16 : Июнь 29, 2017, 17:32 »

Забыл предупредить, если кто-то найдет время чтоб скачать проект и чекнуть ошибку то:

В файле "mainwindow.h" уберите эти включения, иначе выдаст ошибку (в проекте, что вы скачаете их нет)
Код:
#include "dudosbackend.h"
#include "dudosbackend_post_login.h"

Когда скомпилируете проект в релиз, в папку релиз-проекта, в папку /release рядом с "exe" файлом положите эти dll, без них не будут работать HTTPS...
https://drive.google.com/file/d/0B7-Ahrbw3_gOcHZtM1VBM2ZXeDQ/view?usp=sharing
Записан
Kek
Гость
« Ответ #17 : Июнь 29, 2017, 17:38 »

Чтоб в 1 потоке сымитировать ошибку быстрее, а не ждать ее 20-30 минут, замените в файле "dudosbackend_connect.cpp"
"timerReply.start(20);"
на
"timerReply.start(10);"
и она случится через минуту-две...
« Последнее редактирование: Июнь 29, 2017, 17:40 от Kek » Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3257


Просмотр профиля
« Ответ #18 : Июнь 29, 2017, 17:54 »

Ну падает в QCoreApplication::notify(), что означает, что кто-то пытается доставить эвент удаленному объекту.
Записан
Kek
Гость
« Ответ #19 : Июнь 29, 2017, 19:10 »

Ну падает в QCoreApplication::notify(), что означает, что кто-то пытается доставить эвент удаленному объекту.
Вот, дело значит в abort/close/delete... Как и писал ранее, так как же корректно удалять этот чертов NetworkReply, чтоб он удалился и ничего не упало?
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


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