unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Stefan Monnier <monnier@iro.umontreal.ca>
Cc: kai@emptydomain.de, storm@cua.dk, emacs-devel@gnu.org
Subject: Re: Tramp with global-auto-revert-mode.
Date: 14 May 2004 00:16:49 -0400	[thread overview]
Message-ID: <87pt973b7y.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <200405140308.i4E38b415540@raven.dms.auburn.edu>

> I believe that the freezes are not an Emacs or Tramp bug, but the
> inevitable result of a slow connection.  Hence we need a user option
> to deal with them.

If C-g does not get you out of the hang, it's a bug.
As I said, the with-local-quit should be put in Tramp.
You might be right that auto-reverting remote files needs to be turned off
or customizable, but the problems you're experiencing could also be
triggered by other packages than auto-revert, so we should fix them.

Among all the problems, one of them is actually in autorevert.el:
the auto-revert timer should not be re-run if it hasn't finished running
yet.  One way to do that is to not use a repeating timer, but instead to
reset the timer manually at the end of auto-revert-buffers.  Another is to
bind auto-revert-running to t in auto-revert-buffers and check it before
running, as in the patch below.  A third option is to do this kind of
re-entrance-check directly in the C code.


        Stefan


--- orig/lisp/autorevert.el
+++ mod/lisp/autorevert.el
@@ -1,6 +1,6 @@
 ;;; autorevert.el --- revert buffers when files on disk change
 
-;; Copyright (C) 1997, 1998, 1999, 2001 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 98, 1999, 2001, 2004  Free Software Foundation, Inc.
 
 ;; Author: Anders Lindgren <andersl@andersl.com>
 ;; Keywords: convenience
@@ -343,7 +343,7 @@
       ;; do want to reset the mode for VC, so we do it manually.
       (when (or revert auto-revert-check-vc-info)
 	(vc-find-file-hook)))))
-
+(defvar auto-revert-running nil)
 (defun auto-revert-buffers ()
   "Revert buffers as specified by Auto-Revert and Global Auto-Revert Mode.
 
@@ -367,9 +367,13 @@
 This function is also responsible for removing buffers no longer in
 Auto-Revert mode from `auto-revert-buffer-list', and for canceling
 the timer when no buffers need to be checked."
+  (if auto-revert-running
+      ;; Don't re-run if we're not finished executing the previous run.
+      nil
   (let ((bufs (if global-auto-revert-mode
 		  (buffer-list)
 		auto-revert-buffer-list))
+	(auto-revert-running t)
 	(remaining '())
 	(new '()))
     ;; Partition `bufs' into two halves depending on whether or not
@@ -405,7 +409,7 @@
     (when (and (not global-auto-revert-mode)
 	       (null auto-revert-buffer-list))
       (cancel-timer auto-revert-timer)
-      (setq auto-revert-timer nil))))
+      (setq auto-revert-timer nil)))))
 
 
 ;; The end:

  reply	other threads:[~2004-05-14  4:16 UTC|newest]

Thread overview: 95+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-05-12 22:54 Tramp with global-auto-revert-mode Luc Teirlinck
2004-05-12 23:26 ` Luc Teirlinck
2004-05-13 23:11   ` Kim F. Storm
2004-05-13 23:24     ` Luc Teirlinck
2004-05-13 23:46       ` Kim F. Storm
2004-05-14  0:08         ` Luc Teirlinck
2004-05-14  1:17           ` Stefan Monnier
2004-05-14  1:32             ` Luc Teirlinck
2004-05-14  2:35               ` Stefan Monnier
2004-05-14  2:53                 ` Luc Teirlinck
2004-05-14  3:08                 ` Luc Teirlinck
2004-05-14  4:16                   ` Stefan Monnier [this message]
2004-05-14  4:45                     ` Luc Teirlinck
2004-05-14  5:09                       ` Stefan Monnier
2004-05-14 19:13                         ` Luc Teirlinck
2004-05-14 21:02                       ` Richard Stallman
2004-05-14  5:01                     ` Luc Teirlinck
2004-05-14 23:00                     ` Kim F. Storm
2004-05-15  0:44                       ` Luc Teirlinck
2004-05-15  1:39                       ` Luc Teirlinck
2004-05-15 18:34                         ` Richard Stallman
2004-05-15 20:44                           ` Luc Teirlinck
2004-05-15 23:44                             ` Luc Teirlinck
2004-05-16  0:41                               ` Luc Teirlinck
2004-05-16 13:52                                 ` Andreas Schwab
2004-05-17 11:04                               ` Richard Stallman
2004-05-17 14:20                                 ` Luc Teirlinck
2004-05-16  5:58                             ` Eli Zaretskii
2004-05-16 18:11                               ` Luc Teirlinck
2004-05-16 18:32                                 ` Luc Teirlinck
2004-05-16 20:04                                 ` Luc Teirlinck
2004-05-16 22:41                                   ` Kim F. Storm
2004-05-17  5:21                                     ` Kai Grossjohann
2004-05-17 12:45                                     ` Kim F. Storm
2004-05-17 15:03                                       ` Luc Teirlinck
2004-05-17 15:22                                         ` Kim F. Storm
2004-05-18 16:25                                       ` Stefan Monnier
2004-05-18 17:10                                         ` Luc Teirlinck
2004-05-21 23:44                                           ` Kim F. Storm
2004-05-22  1:08                                             ` Luc Teirlinck
2004-05-22 11:52                                               ` Kim F. Storm
2004-05-23 17:21                                                 ` Michael Albinus
2004-05-17  6:04                                 ` Eli Zaretskii
2004-05-15  2:50                       ` Luc Teirlinck
2004-05-15 13:19                         ` Andreas Schwab
2004-05-15 13:34                           ` Luc Teirlinck
2004-05-15 16:45                             ` Andreas Schwab
2004-05-15 17:49                               ` Luc Teirlinck
2004-05-15 13:51                           ` Luc Teirlinck
2004-05-15 18:26                             ` Eli Zaretskii
2004-05-15  3:23                       ` Luc Teirlinck
2004-05-15 18:02                       ` Luc Teirlinck
2004-05-14 21:02               ` Richard Stallman
2004-05-14  2:31             ` Luc Teirlinck
2004-05-14  5:32               ` Luc Teirlinck
2004-05-14 11:36             ` Kai Grossjohann
2004-05-14 12:06               ` David Kastrup
2004-05-14 17:06                 ` Stefan Monnier
2004-05-14 17:54                   ` David Kastrup
2004-05-14 18:30                     ` Stefan Monnier
2004-05-14 19:08                     ` Kim F. Storm
2004-05-14 19:26                       ` David Kastrup
2004-05-14 20:33                         ` Kim F. Storm
2004-05-14 21:00                           ` David Kastrup
2004-05-14 21:19                             ` Kim F. Storm
2004-05-14 21:33                               ` Stefan Monnier
2004-05-14 22:55                                 ` Kim F. Storm
2004-05-14 23:04                                   ` Stefan Monnier
2004-05-15 18:33                                 ` Richard Stallman
2004-05-14 22:11                               ` David Kastrup
2004-05-14 22:57                                 ` Kim F. Storm
2004-05-14 22:47                           ` Luc Teirlinck
2004-05-14 23:14                             ` Kim F. Storm
2004-05-14 23:38                               ` Luc Teirlinck
2004-05-14 22:50                           ` Luc Teirlinck
2004-05-14 23:00                           ` Luc Teirlinck
2004-05-14 20:40                       ` Kai Grossjohann
2004-05-14 23:26                         ` David Kastrup
2004-05-15 16:19                           ` Kai Grossjohann
2004-05-15 17:01                             ` David Kastrup
2004-05-15 17:26                               ` Kai Grossjohann
2004-05-15 18:18                                 ` David Kastrup
2004-05-16 14:11                                   ` Kai Grossjohann
2004-05-15 18:33                     ` Richard Stallman
2004-05-16 14:13                       ` Kai Grossjohann
2004-05-17  1:14                         ` Luc Teirlinck
2004-05-17 22:58                         ` Richard Stallman
2004-05-18  3:44                           ` Luc Teirlinck
2004-05-14 20:32                   ` Kai Grossjohann
2004-05-14 21:35                     ` Michael Albinus
2004-05-15 16:22                       ` Kai Grossjohann
2004-05-14 20:29                 ` Kai Grossjohann
2004-05-14 21:02       ` Richard Stallman
2004-05-14  0:54     ` Luc Teirlinck
2004-05-14  2:13     ` Luc Teirlinck

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

  List information: https://www.gnu.org/software/emacs/

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

  git send-email \
    --in-reply-to=87pt973b7y.fsf-monnier+emacs@gnu.org \
    --to=monnier@iro.umontreal.ca \
    --cc=emacs-devel@gnu.org \
    --cc=kai@emptydomain.de \
    --cc=storm@cua.dk \
    /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 public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).