summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDon Sanders <don.sanders@nokia.com>2011-06-08 13:01:37 +0300
committerDon Sanders <don.sanders@nokia.com>2011-06-08 13:01:37 +0300
commitb17e950047e846e331e80944fd19c8e282637aae (patch)
treea1c1c3efb83c52e94616e9caa95c3979023411f8
parent28785fa1a3d9e2706653ca243f923ced44bd1433 (diff)
Fix for NB#257648 - Use QTimer for "expire check" instead of syshb
Patch from Eric.
-rw-r--r--CHANGES3
-rw-r--r--src/libraries/qmfmessageserver/qmailmessagebuffer.cpp11
2 files changed, 8 insertions, 6 deletions
diff --git a/CHANGES b/CHANGES
index 26068a97..f4571453 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,9 @@
Latest Changes
---------------
+201123
+ * Fixes NB#257648 Use QTimer for "expire check" instead of syshb
+
201122
* Fixes: NB#259331 Does not show new emails immediately
* Fixes: NB#249858 Random crash observed with assert
diff --git a/src/libraries/qmfmessageserver/qmailmessagebuffer.cpp b/src/libraries/qmfmessageserver/qmailmessagebuffer.cpp
index 490c0b63..d9341522 100644
--- a/src/libraries/qmfmessageserver/qmailmessagebuffer.cpp
+++ b/src/libraries/qmfmessageserver/qmailmessagebuffer.cpp
@@ -41,7 +41,7 @@
#include "qmailmessagebuffer.h"
#include "qmailstore.h"
-#include "qmailheartbeattimer.h"
+#include <QTimer>
#include <QSettings>
#include <QDebug>
@@ -61,7 +61,7 @@ class QMailMessageBufferPrivate
qreal timeoutScale;
// Flush the buffer periodically
- QMailHeartbeatTimer messageTimer;
+ QTimer messageTimer;
QTime secondaryTimer;
int lastFlushTimePerMessage;
@@ -137,11 +137,10 @@ bool QMailMessageBuffer::setCallback(QMailMessage *message, QMailMessageBufferFl
// If the buffer is full we flush.
// If the timer isn't running we flush.
messageFlush();
- } else if (d->secondaryTimer.elapsed() > d->messageTimer.interval().second) {
+ } else if (d->secondaryTimer.elapsed() > d->messageTimer.interval()) {
// message timer is overdue to fire, force a flush
messageFlush();
}
-
return true;
}
@@ -197,9 +196,9 @@ void QMailMessageBuffer::messageFlush()
d->waitingForFlush.clear();
int timePerMessage = commitTimer.elapsed() / processed;
- if (timePerMessage > d->lastFlushTimePerMessage && d->messageTimer.interval().first < d->maxTimeout) {
+ if (timePerMessage > d->lastFlushTimePerMessage && d->messageTimer.interval() < d->maxTimeout) {
// increase the timeout
- int interval = d->messageTimer.interval().first * d->timeoutScale;
+ int interval = d->messageTimer.interval() * d->timeoutScale;
int actual = (interval > d->maxTimeout)? d->maxTimeout:interval;
d->messageTimer.setInterval(actual);
}