diff options
author | mread <qt-info@nokia.com> | 2010-04-30 13:27:08 (GMT) |
---|---|---|
committer | mread <qt-info@nokia.com> | 2010-04-30 13:47:47 (GMT) |
commit | accde4c624fc0fc7a3942925922fc981888c4ac4 (patch) | |
tree | 3de376acbb25507ce0f163741381c3165b573f40 /src/gui/text/qfontsubset.cpp | |
parent | 25ed3acf3daa1141e7ae5ac65f6456b9af9b451a (diff) | |
download | Qt-accde4c624fc0fc7a3942925922fc981888c4ac4.zip Qt-accde4c624fc0fc7a3942925922fc981888c4ac4.tar.gz Qt-accde4c624fc0fc7a3942925922fc981888c4ac4.tar.bz2 |
Event dispatcher slow down using delays rather than thread priority
The Symbian event dispatcher has a mechanism to slow down the Qt app
to prevent viewsrv crashes and keep the device responsive. This was
implemented using a thread priority drop. But that has some bad side
effects, such as app and system performance instability.
This new implementation of a slow down mechanism uses a separate low
priority thread to test when the system is getting too busy. Adaptive
millisecond waits are used to slow the app down just enough to let the
low prioirity thread to run.
In practice this avoids the performance instability of the previous
method, and results in much better system stability where the system
stays more responsive with fewer viewsrv panics when heavy Qt apps are
running.
The slow down code kicks in after 2 seconds of busy time. The delays
grow 1ms at a time to a maximum of 1/4 of average event run time.
This updated version of the fix used an RSemaphore rather than
RFastlock, which should not have been used for cross-thread signalling.
Task-number: QTBUG-9489
Reviewed-by: Shane Kearns
Diffstat (limited to 'src/gui/text/qfontsubset.cpp')
0 files changed, 0 insertions, 0 deletions