** 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

_______________________________________________
Mailing list: https://launchpad.net/~linuxdcpp-team
Post to     : linuxdcpp-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~linuxdcpp-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to