From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.help Subject: Re: Repeating timers and suspending the computer Date: Sun, 11 Dec 2022 08:52:21 +0200 Message-ID: <83pmcqv3dm.fsf@gnu.org> References: <87r0x9dug9.fsf@mbork.pl> <834ju511jl.fsf@gnu.org> <87ilijdjls.fsf@mbork.pl> Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="39379"; mail-complaints-to="usenet@ciao.gmane.io" To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Sun Dec 11 07:52:54 2022 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1p4GCj-000A3d-Ic for geh-help-gnu-emacs@m.gmane-mx.org; Sun, 11 Dec 2022 07:52:53 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p4GCH-0000J8-Ue; Sun, 11 Dec 2022 01:52:25 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p4GCF-0000Ik-8e for help-gnu-emacs@gnu.org; Sun, 11 Dec 2022 01:52:23 -0500 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p4GCE-0007QU-Ud for help-gnu-emacs@gnu.org; Sun, 11 Dec 2022 01:52:22 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=FLTY9mO88ED/OVrGkm1jSR/x4fqfA1VWKFm7x6I3LLo=; b=MG9z64wPsH+P BwN6Cqrp/d806vxr2uf7QcMtsqgoLbP8SW1UVrebakfuPlEFSsYn48Dr8W28oSAMi3q1w7FAN6YDK FxUtCIBBUFD+WgJIlfjBYeRoOIyBKlvMLwDnoPdkCvBtEj2GpXXa+86DUrxtSojfIO00SKitV05EO QgNRA0GmbB8fMdin1I7ph8xHhugfp3rlPCEgZ4dG6L9SnkhNFH2IxUW2mMlXAq8P1TXoVAW5QrZKl AmiSTuyjI5zzjB66SGPbiT/Uqq3JB6r/NZWI4UkXvHlKoBNYpbkTlDwrOGctTs+scdB+8l4Yyfc2v r1HQXNdaP5E7WbMlqm7INg==; Original-Received: from [87.69.77.57] (helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p4GCE-0004lI-Ff for help-gnu-emacs@gnu.org; Sun, 11 Dec 2022 01:52:22 -0500 In-Reply-To: <87ilijdjls.fsf@mbork.pl> (message from Marcin Borkowski on Sat, 10 Dec 2022 22:39:11 +0100) X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.help:141626 Archived-At: > From: Marcin Borkowski > Cc: help-gnu-emacs@gnu.org > Date: Sat, 10 Dec 2022 22:39:11 +0100 > > > Frankly, I expected my function to be called either once or 10 times, > but not twice. > > So, how can I get a better mental model? By looking at the source, of course. There you will see that if the expected number of calls exceeds the limit, Emacs advances the "last invocation time" of the timer to the current time, thus effectively bypassing all those delayed invocations. Why you see 2 calls instead of just the expected one needs more investigation. At the very least, it depends on the exact time when your computer was awoken: if that time was close to the integral multiple of the timer period, you can legitimately see two invocations with a very small time interval between them. But maybe some other factor is at work here. If you are really interested, I suggest to instrument timer.el with some calls to 'message' and repeat the experiment to learn why that happens.