deadlock |
Здравствуйте, гость ( Вход | Регистрация )
deadlock |
zss |
24.6.2009, 15:00
Сообщение
#1
|
Участник Группа: Участник Сообщений: 112 Регистрация: 9.6.2009 Пользователь №: 815 Спасибо сказали: 0 раз(а) Репутация: 0 |
ситуация следующая.
Есть QMainWidow у которого есть потоковый метод. Он крутиться по флагу, вычитывает данные и посылает событие.
так вот иногда происходит висяк. Преположение в том, что customEvent для QMainWindow работает в первичном потоке и stop() тоже работает в первичном потоке. Так вот если я выставил флаг и жду, то первичный поток блокируется. В этот момент мой поток прочитал данные, и пытается послать событие. Может ли в данном случае быть deadlock или postEvent отработает всегда ? Если так, то где может быть висяк и как его разрулить ? |
|
|
SABROG |
24.6.2009, 16:07
Сообщение
#2
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
Посланные события выполняются в основном потоке, если там что-то долгоиграющее, то и гуй подвиснет.
А тут висяк вполне может быть, если устройство с которого читаешь долго ничего не возвращает и до проверки твоего флага m_stopped дело не доходит. При этом естессно и гуй висит. так вот иногда происходит висяк Я ведь правильно понимаю, гуй висит? Сообщение отредактировал SABROG - 24.6.2009, 16:09 |
|
|
Текстовая версия | Сейчас: 22.12.2024, 19:35 |