linuxdcpp-team team mailing list archive
-
linuxdcpp-team team
-
Mailing list archive
-
Message #07732
[Bug 713742] Re: TimerManager generate double tick per second on some situations
** Tags added: core
--
You received this bug notification because you are a member of
Dcplusplus-team, which is subscribed to DC++.
https://bugs.launchpad.net/bugs/713742
Title:
TimerManager generate double tick per second on some situations
Status in DC++:
Confirmed
Bug description:
Code to fix this error quote below:
int TimerManager::run()
{
int nextMin = 0;
ptime now = microsec_clock::universal_time();
ptime nextSecond = now + seconds(1);
while (!mtx.timed_lock(nextSecond))
{
const uint64_t t = getTick();
now = microsec_clock::universal_time();
nextSecond += seconds(1);
if (nextSecond < now)
{
nextSecond = now + seconds(1); // [!] IRainman fix TimerManager error: two tick generated in one second.
}
fire(TimerManagerListener::Second(), t);
if (nextMin++ >= 60)
{
fire(TimerManagerListener::Minute(), t);
nextMin = 0;
}
}
dcdebug("TimerManager done\n");
return 0;
}
autor FlylinkDC++ Team http://code.google.com/p/flylinkdc
To manage notifications about this bug go to:
https://bugs.launchpad.net/dcplusplus/+bug/713742/+subscriptions
References