core: introduce timer::rearm()

This commit is contained in:
Tomasz Grabiec
2014-10-08 18:29:11 +02:00
parent d97c8eb50c
commit 6fabc8700f

View File

@@ -117,6 +117,7 @@ public:
future<> expired();
void set_callback(callback_t&& callback);
void arm(clock_type::time_point until, boost::optional<clock_type::duration> period = {});
void rearm(clock_type::time_point until, boost::optional<clock_type::duration> period = {});
void arm(clock_type::duration delta);
void arm_periodic(clock_type::duration delta);
bool armed() const { return _armed; }
@@ -982,6 +983,14 @@ void timer::arm(clock_type::time_point until, boost::optional<clock_type::durati
_queued = true;
}
inline
void timer::rearm(clock_type::time_point until, boost::optional<clock_type::duration> period) {
if (_armed) {
cancel();
}
arm(until, period);
}
inline
void timer::arm(clock_type::duration delta) {
return arm(clock_type::now() + delta);