Details
-
Bug
-
Resolution: Cannot Reproduce
-
P2: Important
-
None
-
5.6.0
-
None
-
Mac OS X
Description
I've encountered a hang inside QCocoaEventDispatcher::processEvents.
What happens (quite difficult to explain to be honest):
Check the attached screenshot. We are 2 times in QCocoaEventDispatcher::processEvents(). So my previous dialog just closed, endModalSession called, d->interrupt became true, no cleanup session yet. Then I go to 'second' processEvents which is called from QApplication::processEvents, no real dialog here (without exiting the loop in 'first' processEvents) and d->interrupt becomes false again. As a result the loop in 'first' processEvents becomes endless.
It all looks exactly like QTBUG-45389 which is closed by some reason. I've attached the patch which helps me. Basically I just added cleanupModalSessions into the hanging loop. Could somebody review it and apply if possible?
Attachments
Issue Links
- is duplicated by
-
QTBUG-53947 QCocoaEventDispatcher may stay stuck after QEventLoop::exit() is called
- Closed
- replaces
-
QTBUG-45389 Qt hangs when a modal dialog is killed then the parent window calls an event-triggered processEvents() within the (now inactive) modal child's event loop
- Closed