← Back to team overview

linuxdcpp-team team mailing list archive

[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