mail_daemon: auto check message was leaked, send immediately.
* BMessageRunner does not take ownership of the message. * Instead of waiting through the complete interval, we send an auto check message immediately after launch (or whenever else the timer is being started). * Added constant instead of referring to 'moto' for the auto check message.
This commit is contained in:
@@ -40,6 +40,9 @@
|
|||||||
#define B_TRANSLATION_CONTEXT "MailDaemon"
|
#define B_TRANSLATION_CONTEXT "MailDaemon"
|
||||||
|
|
||||||
|
|
||||||
|
static const uint32 kMsgAutoCheck = 'moto';
|
||||||
|
|
||||||
|
|
||||||
struct send_mails_info {
|
struct send_mails_info {
|
||||||
send_mails_info()
|
send_mails_info()
|
||||||
{
|
{
|
||||||
@@ -302,10 +305,8 @@ void
|
|||||||
MailDaemonApplication::MessageReceived(BMessage* msg)
|
MailDaemonApplication::MessageReceived(BMessage* msg)
|
||||||
{
|
{
|
||||||
switch (msg->what) {
|
switch (msg->what) {
|
||||||
case 'moto':
|
case kMsgAutoCheck:
|
||||||
if (fSettingsFile.CheckOnlyIfPPPUp()) {
|
// TODO: check whether internet is up and running!
|
||||||
// TODO: check whether internet is up and running!
|
|
||||||
}
|
|
||||||
// supposed to fall through
|
// supposed to fall through
|
||||||
case kMsgCheckAndSend: // check & send messages
|
case kMsgCheckAndSend: // check & send messages
|
||||||
msg->what = kMsgSendMessages;
|
msg->what = kMsgSendMessages;
|
||||||
@@ -832,8 +833,13 @@ MailDaemonApplication::_UpdateAutoCheck(bigtime_t interval)
|
|||||||
fAutoCheckRunner->SetInterval(interval);
|
fAutoCheckRunner->SetInterval(interval);
|
||||||
fAutoCheckRunner->SetCount(-1);
|
fAutoCheckRunner->SetCount(-1);
|
||||||
} else {
|
} else {
|
||||||
fAutoCheckRunner = new BMessageRunner(be_app_messenger,
|
BMessage update(kMsgAutoCheck);
|
||||||
new BMessage('moto'), interval);
|
fAutoCheckRunner = new BMessageRunner(be_app_messenger, &update,
|
||||||
|
interval);
|
||||||
|
|
||||||
|
// Send one right away -- the message runner will wait until the
|
||||||
|
// first interval has passed before sending a message
|
||||||
|
PostMessage(&update);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
delete fAutoCheckRunner;
|
delete fAutoCheckRunner;
|
||||||
|
|||||||
Reference in New Issue
Block a user