From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Michael Heerdegen Newsgroups: gmane.emacs.devel Subject: 24.3.50; Timer firing after being canceled Date: Sun, 07 Apr 2013 21:53:24 +0200 Message-ID: <87ip3yw217.fsf@web.de> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1365445707 4815 80.91.229.3 (8 Apr 2013 18:28:27 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 8 Apr 2013 18:28:27 +0000 (UTC) Cc: Tomohiro Matsuyama To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Apr 08 20:28:31 2013 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1UPGnr-0000pw-MS for ged-emacs-devel@m.gmane.org; Mon, 08 Apr 2013 20:28:27 +0200 Original-Received: from localhost ([::1]:52309 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UOvej-0003p2-JA for ged-emacs-devel@m.gmane.org; Sun, 07 Apr 2013 15:53:37 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:44134) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UOvee-0003ow-Mj for emacs-devel@gnu.org; Sun, 07 Apr 2013 15:53:35 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UOveb-0006mA-Am for emacs-devel@gnu.org; Sun, 07 Apr 2013 15:53:32 -0400 Original-Received: from mout.web.de ([212.227.15.3]:52207) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UOveb-0006lg-0r for emacs-devel@gnu.org; Sun, 07 Apr 2013 15:53:29 -0400 Original-Received: from drachen.dragon ([92.74.136.91]) by smtp.web.de (mrweb002) with ESMTPSA (Nemesis) id 0MEEMy-1UMlun3X7Q-00Flkr; Sun, 07 Apr 2013 21:53:27 +0200 Mail-Followup-To: emacs-devel@gnu.org, Tomohiro Matsuyama User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) X-Provags-ID: V02:K0:OpVHC+9JZvlGHkCwRBXd/JkLI3EibW2GZZ+dBYrKIuf hf2L+27MGcI692p27NMQSKAtr6/P34HptC4QeDM5Tty0+8hmxr BWWmy85cdkgBa83yY55Jp7ykLefZqLZKxvyT0tlK9rTABhsLvg gjEJ+GR1ugqB4RrkxXXlNbUjSBNcA3TuFxTOPZ5lSPy4esEw1H IkzuqZGYAQeb/bQsBZKJCUASkQH4+VOOztgZ/W+QUE= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4.x-2.6.x [generic] X-Received-From: 212.227.15.3 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:158772 Archived-At: Hi, This report is about the following problem (bug) raised in gnu.emacs.devel by Tomohiro Matsuyama: ,---------------------------------------------------------------------- | Hi, | | I have found a problem that cancel-timer will not work in a particular | situation where the timer takes more time to execute than a | rescheduling interval of the timer. Here is the reproducible code: | | (setq my-timer | (run-with-timer | nil 0.1 | (lambda () | (when my-timer | (cancel-timer my-timer) | (setq my-timer nil) | (sit-for 0.3))))) | | After evaluating this code several times, you may see "zombie" timers | in timer-list, though the code intends to keep at most one timer. `---------------------------------------------------------------------- I can reproduce this problem. And I have a test case that proves that timers that have been canceled (i.e., removed from `timer-list') are still called from C: --8<---------------cut here---------------start------------->8--- (defvar my-timer nil) (defun start-the-timer () (interactive) (setq my-timer (run-with-timer 0 0.1 (lambda () (cancel-timer my-timer) (sit-for 0.3))))) (advice-add 'timer-event-handler :before (lambda (timer) (when (and (eq timer my-timer) (not (memq my-timer timer-list))) (message "Why is this ever reached?")))) --8<---------------cut here---------------end--------------->8--- If you call `start-the-timer', you get the message "Why is this ever reached?" over and over. This obviously should not happen. Thanks, Michael. In GNU Emacs 24.3.50.1 (x86_64-pc-linux-gnu, GTK+ Version 3.4.2) of 2013-04-04 on dex, modified by Debian (emacs-snapshot package, version 2:20130403-1) Windowing system distributor `The X.Org Foundation', version 11.0.11204000 System Description: Debian GNU/Linux 7.0 (wheezy) Configured using: `configure --build x86_64-linux-gnu --host x86_64-linux-gnu --prefix=/usr --sharedstatedir=/var/lib --libexecdir=/usr/lib --localstatedir=/var --infodir=/usr/share/info --mandir=/usr/share/man --with-pop=yes --enable-locallisppath=/etc/emacs-snapshot:/etc/emacs:/usr/local/share/emacs/24.3.50/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.3.50/site-lisp:/usr/share/emacs/site-lisp --without-compress-info --with-crt-dir=/usr/lib/x86_64-linux-gnu/ --with-x=yes --with-x-toolkit=gtk3 --with-imagemagick=yes CFLAGS='-DDEBIAN -DSITELOAD_PURESIZE_EXTRA=5000 -g -O2' CPPFLAGS='-D_FORTIFY_SOURCE=2' LDFLAGS='-g -Wl,--as-needed -znocombreloc'' Important settings: value of $LC_ALL: de_DE.utf8 value of $LC_TIME: C value of $LANG: de_DE.utf8 locale-coding-system: utf-8-unix default enable-multibyte-characters: t Major mode: Dired by name