![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
di.em |
![]()
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 17.3.2011 Пользователь №: 2511 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Есть класс Thread наследуемый от QThread
вот его run(): void Thread::run()
при создании нескольких объектов данного класса + ->start() Часто конфликты мутексов и памяти: QMutex::lock: mutex lock failure: Недопустимый аргумент *** glibc detected *** ... : corrupted double-linked list: 0x081f8e18 *** ... Объясните пожалуйста причину такого странного поведения |
|
|
![]() |
ufna |
![]()
Сообщение
#2
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 362 Регистрация: 24.5.2008 Из: Курган/СПб Пользователь №: 182 Спасибо сказали: 29 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
di.em |
![]()
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 17.3.2011 Пользователь №: 2511 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Да, спасибо, вчера надыбал эту тсатью. Всё равно не понимаю сути. У меня какая ситуация, есть свой класс Http (синхронный), то есть ->post или ->get, далее луп кручу эвентов, пока не будет finished или readyRead от нетворкменеджера. Сделал так, потому что, если вешать на каждый finished свой слот - то при последовательном скачивании нескольких страниц с разными url и дальнейшей обработкой - получаеться очень много кода (куча слотов), очень сложно отлаживать. Буду конечно переделывать, и хорошенечко ещё посмотрю http://ufna.ru/2010/10/27/qt-qnetworkacces...ger-multithread. |
|
|
ufna |
![]()
Сообщение
#4
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 362 Регистрация: 24.5.2008 Из: Курган/СПб Пользователь №: 182 Спасибо сказали: 29 раз(а) Репутация: ![]() ![]() ![]() |
я лично делаю один слот finished, но в зависимости от objectName, который я задал QReply (который в финишд и войдет как sender()), кидаю разным обработчикам и все. Один слот, один механизм, профит.
Не понял правда в чем заключается последний вопрос ![]() |
|
|
di.em |
![]()
Сообщение
#5
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 17.3.2011 Пользователь №: 2511 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Не понял правда в чем заключается последний вопрос ![]() Если сделать что то вроде
И не вешать, никаких сигналов на quit() трэда (run никогда не завершиться, а nm не будет удалён), всё равно выскакивают ошибки конфликтов мьютэксов и выделения памяти. Интересно почему так ведёт себя, nm видимо использует какие-то общие ресурсы, не знаю. Ну собственно вы с подобным поведением (судя по вашей статье) тоже сталкивались. Так то программу переписал, более удобно для себя, без использования трэдов, как и положенно. |
|
|
ufna |
![]()
Сообщение
#6
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 362 Регистрация: 24.5.2008 Из: Курган/СПб Пользователь №: 182 Спасибо сказали: 29 раз(а) Репутация: ![]() ![]() ![]() |
честно говоря, я забыл уже чего там ) проблема была, разобрался, понял что так делать не стоит, запомнил что надо делать и забыл почему. Там с потоками и "родительствами" все связано, завтра посмотрю, сегодня сидр имеет место быть (
|
|
|
di.em |
![]()
Сообщение
#7
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 17.3.2011 Пользователь №: 2511 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
честно говоря, я забыл уже чего там ) проблема была, разобрался, понял что так делать не стоит, запомнил что надо делать и забыл почему. Там с потоками и "родительствами" все связано, завтра посмотрю, сегодня сидр имеет место быть ( Ну спасибо всё равно, если бы не статься я зашёл бы в полный ступор ) |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 2.6.2025, 4:13 |