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 {
|
||||
|
||||
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) {}
|
||||
|
||||
void Timer::reset() { tp_ = Clock::now(); }
|
||||
void Timer::reset() { tp_ = getNow(); }
|
||||
|
||||
Timer::Clock::duration Timer::difference() const
|
||||
{
|
||||
auto now = Clock::now();
|
||||
auto now = getNow();
|
||||
if (now < tp_) {
|
||||
return Timer::Clock::duration(0_s);
|
||||
}
|
||||
|
|
|
@ -54,9 +54,13 @@ public:
|
|||
Timer(const 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=(const Timer& timer) = default;
|
||||
|
|
Loading…
Reference in New Issue