Details
-
Task
-
Resolution: Fixed
-
P2: Important
-
None
Description
Currently exec loop handling has issues with 'child loops', secondary MainWindows and local event loops.
More details on the Issue: Currently exec loop handling has issues with nested event loops, for example when displaying dialogs. It could also cause 100% cpu usage and application freezeing when used on a secondary thread.
Solution: Patches have been done to allow main threads to run using asyncify - Asyncify automatically transforms your compiled code into a form that can be paused and resumed, and handles pausing and resuming for you, so that it is asynchronous (hence the name “Asyncify”) even though you wrote it in a normal synchronous way. Event loop can be run on the secondary thread.
In testing CPU load reduced from 100% to 2% in problematic cases.
This feature enables many other things such as sockets on a secondary thread
Attachments
Issue Links
- mentioned in
-
Page Loading...
For Gerrit Dashboard: QTBUG-64020 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
290460,15 | wasm: add new event dispatcher implementation | dev | qt/qtbase | Status: MERGED | +2 | 0 |
301127,2 | wasm: use new event dispatcher for QtGui apps | dev | qt/qtbase | Status: DEFERRED | 0 | 0 |