Have the ringbuffer keep track of its own seconds

Put some more smarts into the ringbuffer, fire up a timer
and have that update the current HEAD every second.  Is that racy?