all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Chong Yidong <cyd@gnu.org>
Cc: 12447@debbugs.gnu.org, hanche@math.ntnu.no, dgutov@yandex.ru
Subject: bug#12447: 24.1.50; Stuck in garbage collection on OS X
Date: Thu, 20 Sep 2012 19:01:20 +0300	[thread overview]
Message-ID: <83ehlwznsf.fsf@gnu.org> (raw)
In-Reply-To: <87a9wlz6e4.fsf@gnu.org>

> From: Chong Yidong <cyd@gnu.org>
> Cc: Dmitry Gutov <dgutov@yandex.ru>,  hanche@math.ntnu.no,  12447@debbugs.gnu.org
> Date: Thu, 20 Sep 2012 12:04:51 +0800
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> >> Date: Wed, 19 Sep 2012 20:21:32 +0400
> >> From: Dmitry Gutov <dgutov@yandex.ru>
> >> CC: jan.h.d@swipnet.se, 12447@debbugs.gnu.org, hanche@math.ntnu.no
> >> 
> >> By the way, here's what run-with-idle-timer docstring says:
> >> "Perform an action the next time Emacs is idle for SECS seconds."
> >> 
> >> Shouldn't this mean that it should also pass DONT-WAIT nil?
> >
> > No, it just means no one considered the possibility that an idle timer
> > will re-invoke itself like that.  IOW, the doc string is inaccurate.
> 
> I'm not 100% sure this is merely a doc string problem.  In the face of
> ambiguity, we should try to choose the behavior that is least likely to
> lead to infloops in user code.

There's no infloop with my patch.  Assuming that no one comes with a
loop in a couple of days, I will install that, and this particular
issue will be gone.

In general, I think we should prefer solutions that allow Lisp
programmers or users do dumb things (and sometimes get dumb results),
without wedging Emacs.  Restricting what Lisp can do because someone
dumb could wedge Emacs runs a risk of punishing the innocent lot
because of a guilty (or dumb) few.

> When `run-with-idle-timer' is called from an idle timer, we could
> interpret it to mean "run the function the next time Emacs becomes idle
> for SECS seconds, not including the current period of idleness".

I could think of some legitimate uses of the current behavior, though.
For example, imagine an idle timer that gets run after 1 sec of
idleness, does something quick and simple, and then calls itself or
another time with a larger timeout value, at which time it will do
something different, perhaps more complex.  I see no reason to
forcibly prevent such use cases.

It is also in line with Emacs behavior since about forever.  The
possibility of an infloop was a side effect of another bugfix.  With
that possibility hopefully taken care of, we have no reason to change
old behavior, which evidently at least one external package relies
upon.





  reply	other threads:[~2012-09-20 16:01 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-14 21:08 bug#12447: 24.1.50; Stuck in garbage collection on OS X Harald Hanche-Olsen
2012-09-15  9:55 ` Jan Djärv
2012-09-15 11:07   ` Harald Hanche-Olsen
2012-09-15 12:31     ` Eli Zaretskii
2012-09-15 13:19       ` Harald Hanche-Olsen
2012-09-15 13:56         ` Eli Zaretskii
2012-09-15 14:23           ` Harald Hanche-Olsen
2012-09-15 14:37             ` Eli Zaretskii
2012-09-15 18:59     ` Jan Djärv
2012-09-16  9:15 ` Dmitry Gutov
2012-09-16 10:31   ` Eli Zaretskii
2012-09-16 10:44     ` Dmitry Gutov
2012-09-16 11:53       ` Eli Zaretskii
2012-09-16 12:07         ` Dmitry Gutov
2012-09-16 12:39           ` Eli Zaretskii
2012-09-16 13:25             ` Dmitry Gutov
2012-09-16 13:47               ` Eli Zaretskii
2012-09-16 14:25                 ` Dmitry Gutov
2012-09-16 14:54                   ` Eli Zaretskii
2012-09-16 15:56                     ` Dmitry Gutov
2012-09-18 15:05                       ` Eli Zaretskii
2012-09-18 17:29                         ` Jan Djärv
2012-09-18 20:08                           ` Eli Zaretskii
2012-09-19  0:27                         ` Dmitry Gutov
2012-09-19  2:54                           ` Eli Zaretskii
2012-09-19  7:41                             ` Harald Hanche-Olsen
2012-09-19 15:21                               ` Eli Zaretskii
2012-09-19  9:54                             ` Dmitry Gutov
2012-09-19 15:24                               ` Eli Zaretskii
2012-09-19 16:21                                 ` Dmitry Gutov
2012-09-19 16:38                                   ` Eli Zaretskii
2012-09-19 18:29                                     ` Dmitry Gutov
2012-09-20  4:04                                     ` Chong Yidong
2012-09-20 16:01                                       ` Eli Zaretskii [this message]
2012-09-21  3:31                                         ` Chong Yidong
2012-09-21  7:14                                           ` Eli Zaretskii
2012-09-21  9:09                                             ` Chong Yidong
2012-09-21  9:54                                               ` Eli Zaretskii
2012-09-21 14:26                                                 ` Chong Yidong
2012-09-22 13:18                                                   ` Eli Zaretskii
2012-09-21 10:49                                               ` Dmitry Gutov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=83ehlwznsf.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=12447@debbugs.gnu.org \
    --cc=cyd@gnu.org \
    --cc=dgutov@yandex.ru \
    --cc=hanche@math.ntnu.no \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.