Subject: Re: bug#52235: 29.0.50; Suggestion: refactor time.el into a more general 'clock' framework

From: Arthur Miller <[email-masked]>
Date: Fri, 03 Dec 2021 00:36:37 +0100

Lars Ingebrigtsen <[email-masked]> writes:

> Arthur Miller <[email-masked]> writes:
>
>>> If I understand correctly, by "clock beat" you mean an integer multiple
>>> of some time?
>> I am not sure if we speak about same thing; but I mean the clock, synchronized
>> with what Emacs shows as time.
>
> I'm not sure either, because I'm not sure what you mean by
> "synchronized".  But if you want a timer to run at 11:01:00, 11:02:00,
> 11:03:00, then timer.el has support for that (and calls that "integer
> multiple").

Ok. I have tried it now; it seems to work :). TBH I didn't realize what "integer
multiple of REPEAT" means in this aspect, so I didn't even use 't option, and I
also wanted it to start immidiately so I thought I wanted 'nil = meaning now
option. I don't know, blame it on my english, but I found that one tricky to
understand doc.

I don't know if I can suggest better wording myself, but maybe it might help
someone else one day, if that last option was reworded somehow. I think people
usually use term "wall clcok" in this context, but I am not sure, I am not
native english speaker, but I think I have encountered that term in std c++ docs
and Java docs.

>> Also there is no read to run several timers when one timer could
>> be fine to run several hooks as well as saving some code repetition.
>
> Running several timers is fine.  And I don't think there's any code
> repetition?  Just say
>
> (run-at-time t 60 (lambda () (message (format-time-string "%H:%M:%S"))))
>
> or whatever you want.

I guess timers are not very expensive resource in a system, no idea actually how
memory/cpu costly (or cheaply) they are, but it is just that I have to
keep track of it to cancel it when I am done to not leak resource.

By now I am also used to "hooks" in Emacs, and Emacs acting as a framework in
many cases, so it kind of suits my mental build better to add a function to a
hook and get it called than have to setup this manually.

Anyway, this was a suggestion and thanks for the clarification about integer
multiple in this context :-).