JChristensen/Timer — pull request #13 by mattnichols (2014-05-17 06:01:35+00:00)
Title: Fixes cascading event creation issue. An event can now create new events...

If an event callback generates another event:

```
Timer t;
void setup()
{
addTimer();
}

void loop() {
t.update();
}

void addTimer() {
t.after (60000,fireEvent);
}

void fireEvent() {
t.after (60000, fireAnotherEvent);
}

void fireAnotherEvent() {
//
}
```

There is an issue with Timer::update that will cause the new event to be created with a lastEventTime that appears to be in the future. If the next update occurs very soon after, unsigned int math will created a huge elapsed time, causing the new event to timeout prematurely.

This patch "defectors" the Timer update method to reload millis between event updates. It preserves the ability to call update with a "frozen in time" millis.

Thanks for the updates!