event/Loop: use std::chrono::ceil()
Thanks to C++17, we don't need our custom implementation anymore.
This commit is contained in:
parent
b745d1f226
commit
f807345022
|
@ -224,18 +224,6 @@ EventLoop::RunOneIdle() noexcept
|
|||
return true;
|
||||
}
|
||||
|
||||
template<class ToDuration, class Rep, class Period>
|
||||
static constexpr ToDuration
|
||||
duration_cast_round_up(std::chrono::duration<Rep, Period> d) noexcept
|
||||
{
|
||||
using FromDuration = decltype(d);
|
||||
constexpr auto one = std::chrono::duration_cast<FromDuration>(ToDuration(1));
|
||||
constexpr auto round_add = one > one.zero()
|
||||
? one - FromDuration(1)
|
||||
: one.zero();
|
||||
return std::chrono::duration_cast<ToDuration>(d + round_add);
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert the given timeout specification to a milliseconds integer,
|
||||
* to be used by functions like poll() and epoll_wait(). Any negative
|
||||
|
@ -245,7 +233,7 @@ static constexpr int
|
|||
ExportTimeoutMS(Event::Duration timeout) noexcept
|
||||
{
|
||||
return timeout >= timeout.zero()
|
||||
? int(duration_cast_round_up<std::chrono::milliseconds>(timeout).count())
|
||||
? static_cast<int>(std::chrono::ceil<std::chrono::milliseconds>(timeout).count())
|
||||
: -1;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue