+ do_tick(-sec);
+}
+
+void Timer::tick(const TimeDelta &timeout)
+{
+ if(timeout<zero)
+ throw invalid_argument("Timer::tick");
+
+ do_tick(timeout);
+}
+
+void Timer::do_tick(const TimeDelta &timeout)
+{
+ TimeStamp deadline;
+ if(timeout>=zero)
+ deadline = now()+timeout;
+