From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Michael Heerdegen Newsgroups: gmane.emacs.help Subject: Re: Why run-with-timer generates so many timers? Date: Sat, 18 Jul 2020 04:05:34 +0200 Message-ID: <874kq57f2p.fsf@web.de> References: Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="3260"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) To: help-gnu-emacs@gnu.org Cancel-Lock: sha1:ZB2b50VYIwz6RymD5CoLouBxhQ4= Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Sat Jul 18 04:07:35 2020 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 1jwcGF-0000mf-C2 for geh-help-gnu-emacs@m.gmane-mx.org; Sat, 18 Jul 2020 04:07:35 +0200 Original-Received: from localhost ([::1]:34894 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jwcGE-0002tK-7l for geh-help-gnu-emacs@m.gmane-mx.org; Fri, 17 Jul 2020 22:07:34 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:55860) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jwcET-0002ro-4q for help-gnu-emacs@gnu.org; Fri, 17 Jul 2020 22:05:45 -0400 Original-Received: from static.214.254.202.116.clients.your-server.de ([116.202.254.214]:42326 helo=ciao.gmane.io) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jwcER-00083W-Dw for help-gnu-emacs@gnu.org; Fri, 17 Jul 2020 22:05:44 -0400 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1jwcEN-0009Rl-Kw for help-gnu-emacs@gnu.org; Sat, 18 Jul 2020 04:05:39 +0200 X-Injected-Via-Gmane: http://gmane.org/ Received-SPF: pass client-ip=116.202.254.214; envelope-from=geh-help-gnu-emacs@m.gmane-mx.org; helo=ciao.gmane.io X-detected-operating-system: by eggs.gnu.org: First seen = 2020/07/17 22:05:40 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: 11 X-Spam_score: 1.1 X-Spam_bar: + X-Spam_report: (1.1 / 5.0 requ) BAYES_00=-1.9, FREEMAIL_FORGED_FROMDOMAIN=1, FREEMAIL_FROM=0.001, FREEMAIL_REPLY=1, HEADER_FROM_DIFFERENT_DOMAINS=1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.23 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" Xref: news.gmane.io gmane.emacs.help:123553 Archived-At: "numbchild@gmail.com" writes: > Here is the code lines which running timer: > https://github.com/stardiviner/emacs-rainbow-fart/blob/master/rainbow-fart.el#L245 Looks like you save the timer in a global variable; but your mode is buffer local. In your implementation, enabling in any buffer starts a new timer unconditionally and overwrites the global variable AUAIU. Dunno whether this is the reason for all of the timers you see. The question if you should use only one global timer for all buffers is not trivial; if you can do that, it is preferable. Depends on things like which buffers should be treated (all?, all visible?, only the current buffer?). Haven't looked at your code that much. Michael.