next and lock can (so should) be static; they're only referenced from this file.
Also: for the tv_sec member, you've used 0L here but plain 0 below, when you clear now.tv_sec; it's a time_t, so I'm not sure whether the L is relevant !