mirror of https://github.com/aria2/aria2
Add offset value to Timer::clock::now() to treat 0 as special value
parent
01f870221b
commit
777b818690
|
@ -37,15 +37,23 @@
|
||||||
|
|
||||||
namespace aria2 {
|
namespace aria2 {
|
||||||
|
|
||||||
Timer::Timer() : tp_(Clock::now()) { reset(); }
|
// Add this offset to Timer::Clock::now() so that we can treat 0 value
|
||||||
|
// as special case, and normal timeout always applies.
|
||||||
|
constexpr auto OFFSET = 24_h;
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
Timer::Clock::time_point getNow() { return Timer::Clock::now() + OFFSET; }
|
||||||
|
} // namespace
|
||||||
|
|
||||||
|
Timer::Timer() : tp_(getNow()) { reset(); }
|
||||||
|
|
||||||
Timer::Timer(const Clock::time_point& tp) : tp_(tp) {}
|
Timer::Timer(const Clock::time_point& tp) : tp_(tp) {}
|
||||||
|
|
||||||
void Timer::reset() { tp_ = Clock::now(); }
|
void Timer::reset() { tp_ = getNow(); }
|
||||||
|
|
||||||
Timer::Clock::duration Timer::difference() const
|
Timer::Clock::duration Timer::difference() const
|
||||||
{
|
{
|
||||||
auto now = Clock::now();
|
auto now = getNow();
|
||||||
if (now < tp_) {
|
if (now < tp_) {
|
||||||
return Timer::Clock::duration(0_s);
|
return Timer::Clock::duration(0_s);
|
||||||
}
|
}
|
||||||
|
|
|
@ -54,9 +54,13 @@ public:
|
||||||
Timer(const Timer& time) = default;
|
Timer(const Timer& time) = default;
|
||||||
Timer(Timer&& time) = default;
|
Timer(Timer&& time) = default;
|
||||||
|
|
||||||
template <typename duration> constexpr Timer(const duration& t) : tp_(t) {}
|
template <typename duration>
|
||||||
|
constexpr explicit Timer(const duration& t)
|
||||||
|
: tp_(t)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
Timer(const Clock::time_point& tp);
|
explicit Timer(const Clock::time_point& tp);
|
||||||
|
|
||||||
Timer& operator=(Timer&& timer) = default;
|
Timer& operator=(Timer&& timer) = default;
|
||||||
Timer& operator=(const Timer& timer) = default;
|
Timer& operator=(const Timer& timer) = default;
|
||||||
|
|
Loading…
Reference in New Issue