From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#12447: 24.1.50; Stuck in garbage collection on OS X Date: Sun, 16 Sep 2012 15:39:20 +0300 Message-ID: <83wqzuqgzr.fsf@gnu.org> References: <505598C8.8070904@yandex.ru> <834nmys1ht.fsf@gnu.org> <5055AD8E.5020309@yandex.ru> <83zk4qqj4d.fsf@gnu.org> <5055C0EB.3040908@yandex.ru> Reply-To: Eli Zaretskii NNTP-Posting-Host: plane.gmane.org X-Trace: ger.gmane.org 1347799199 20043 80.91.229.3 (16 Sep 2012 12:39:59 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 16 Sep 2012 12:39:59 +0000 (UTC) Cc: 12447@debbugs.gnu.org, hanche@math.ntnu.no To: Dmitry Gutov Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun Sep 16 14:40:02 2012 Return-path: Envelope-to: geb-bug-gnu-emacs@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 1TDE8o-0000aQ-7p for geb-bug-gnu-emacs@m.gmane.org; Sun, 16 Sep 2012 14:40:02 +0200 Original-Received: from localhost ([::1]:50280 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TDE8j-0002Ss-WD for geb-bug-gnu-emacs@m.gmane.org; Sun, 16 Sep 2012 08:39:58 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:46759) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TDE8h-0002Sd-HO for bug-gnu-emacs@gnu.org; Sun, 16 Sep 2012 08:39:56 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TDE8g-0002WJ-8e for bug-gnu-emacs@gnu.org; Sun, 16 Sep 2012 08:39:55 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:55277) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TDE8g-0002WF-5P for bug-gnu-emacs@gnu.org; Sun, 16 Sep 2012 08:39:54 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.72) (envelope-from ) id 1TDE9m-00040s-0g for bug-gnu-emacs@gnu.org; Sun, 16 Sep 2012 08:41:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 16 Sep 2012 12:41:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 12447 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 12447-submit@debbugs.gnu.org id=B12447.134779923415392 (code B ref 12447); Sun, 16 Sep 2012 12:41:01 +0000 Original-Received: (at 12447) by debbugs.gnu.org; 16 Sep 2012 12:40:34 +0000 Original-Received: from localhost ([127.0.0.1]:36590 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TDE9J-00040C-S4 for submit@debbugs.gnu.org; Sun, 16 Sep 2012 08:40:34 -0400 Original-Received: from mtaout21.012.net.il ([80.179.55.169]:51621) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TDE9C-0003zz-Ei for 12447@debbugs.gnu.org; Sun, 16 Sep 2012 08:40:28 -0400 Original-Received: from conversion-daemon.a-mtaout21.012.net.il by a-mtaout21.012.net.il (HyperSendmail v2007.08) id <0MAG00J000B71L00@a-mtaout21.012.net.il> for 12447@debbugs.gnu.org; Sun, 16 Sep 2012 15:39:16 +0300 (IDT) Original-Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout21.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0MAG00JG20HG1Q10@a-mtaout21.012.net.il>; Sun, 16 Sep 2012 15:39:16 +0300 (IDT) In-reply-to: <5055C0EB.3040908@yandex.ru> X-012-Sender: halo1@inter.net.il X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:64418 Archived-At: > Date: Sun, 16 Sep 2012 16:07:07 +0400 > From: Dmitry Gutov > CC: hanche@math.ntnu.no, 12447@debbugs.gnu.org > > >> Like I wrote in 12326, AFAICT, the problem is that timer_check_2 doesn't > >> at any point check that Emacs is still idle. When run-with-idle-timer > >> calls (timer-activate-when-idle timer t), the new timer is added to the > >> list, timer_check_2 reaches is and runs it immediately because > >> 'timer_idleness_start_time' still has the same value. > > > > If that is the problem, then perhaps having timer_check_2 work on a > > copy of the list would solve the problem. Did you try that? > > I'm no C programmer, so I didn't try to fix it in C code. How would I > make a copy of a list there? Using the Fcopy_sequence function, I'd think. Use it at the beginning of the function to set the value of 'idle_timers', instead of this line: idle_timers = Vtimer_idle_list; > But no, it probably won't: the "guilty" commit made timer_check_2 > actually return 0 after a timer fires (keeping true to the comment above > it), so a local copy would serve no purpose. timer_check_2 indeed returns, but then timer_check will call it again, because it continues calling timer_check_2 in a loop, until there's no ripe timer. > Assuming it would've worked, though, wouldn't it make the second > argument to 'timer-activate-when-idle' useless? It isn't useless, it just means a slight delay in the "now" part of its doc string.