unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Tassilo Horn <tsdh@gnu.org>
Cc: 20285@debbugs.gnu.org
Subject: bug#20285: 25.0.50; blink-cursor-mode sometimes stops blinking
Date: Sat, 11 Apr 2015 22:45:46 +0300	[thread overview]
Message-ID: <83fv86e9ed.fsf@gnu.org> (raw)
In-Reply-To: <87vbh2wjrx.fsf@gnu.org>

> From: Tassilo Horn <tsdh@gnu.org>
> Cc: monnier@IRO.UMontreal.CA,  20285@debbugs.gnu.org
> Date: Sat, 11 Apr 2015 21:24:18 +0200
> 
> > I can only understand a much more frequent redisplay if you have a lot
> > of timers, or a high-frequency timer.  When a timer fires, we call
> > redisplay, AFAIR.
> 
> I have a lot of timers but they aren't too high frequency.

They could be if taken together.

> But I think Stefan's explanation (which is the same as you write
> below) is correct, i.e., a redisplay is triggered by new output
> received from the async latex compile process.

It is triggered if there's a small time window between two successive
chunks of subprocess output, so that Emacs has enough time to return
to the idle loop and see that no new input is available.

> > If so, whether or not redisplay is called depends on the speed the
> > compilation process emits stuff that Emacs reads.  If the subprocess
> > outputs a lot of stuff,
> 
> Yes, with the document I'm using for testing, the latex process emits
> 4000 lines of text in about a 40 seconds.

The fine timing of this output's chunks is important.

> It seems that up to some point, the frequent arrival of input triggers a
> lot of redisplays, just as you explain in your other mail:
> 
> ,----
> | The arrival of subprocess output causes the pselect call to return,
> | marking the file descriptor for that process ready to be read.  Emacs
> | then reads from the descriptor, and returns to the idle loop.  If by
> | that time no additional process output arrived, Emacs will enter
> | redisplay.
> | 
> | IOW, arrival of process output is an event that causes the main loop
> | to crank one more time, and that includes redisplay.
> `----
> 
> But under some circumstances which aren't completely clear to me, the
> subprocess output paired with timers etc can cause a redisplay pause.
> The even default interval of 0.5 of b-c-m seems to play its role
> thereby.

This could happen if a very large chunk of output arrives, or several
smaller chunks arrive with almost no delay between them.  Then Emacs
will not become idle before it sees that more input is available.





  reply	other threads:[~2015-04-11 19:45 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-09 14:50 bug#20285: 25.0.50; blink-cursor-mode sometimes stops blinking Tassilo Horn
2015-04-09 15:06 ` Eli Zaretskii
2015-04-09 16:07   ` Eli Zaretskii
2015-04-10  7:46     ` Tassilo Horn
2015-04-10  7:58       ` Eli Zaretskii
2015-04-10  9:28         ` Tassilo Horn
2015-04-10 12:42           ` Eli Zaretskii
2015-04-10 13:13             ` Tassilo Horn
2015-04-10 13:28               ` Eli Zaretskii
2015-04-10 13:32               ` Eli Zaretskii
2015-04-10 14:13                 ` Tassilo Horn
2015-04-10 17:32                   ` Eli Zaretskii
2015-04-10 20:52                     ` Tassilo Horn
2015-04-11  6:25                       ` Eli Zaretskii
2015-04-10 18:24                   ` Stefan Monnier
2015-04-10 18:42                     ` Eli Zaretskii
2015-04-10 20:21                     ` Tassilo Horn
2015-04-10 21:50                       ` Stefan Monnier
2015-04-11  5:54                         ` Tassilo Horn
2015-04-11  7:34                           ` Eli Zaretskii
2015-04-11 11:34                             ` Eli Zaretskii
2015-04-11 11:49                             ` Tassilo Horn
2015-04-11 12:39                               ` Tassilo Horn
2015-04-11 14:45                                 ` Eli Zaretskii
2015-04-11 19:24                                   ` Tassilo Horn
2015-04-11 19:45                                     ` Eli Zaretskii [this message]
2015-04-11 20:17                                       ` Tassilo Horn
2015-04-11 14:02                               ` Stefan Monnier
2015-04-11 14:30                                 ` Tassilo Horn
2015-04-11 14:48                                   ` Eli Zaretskii
2015-04-11 15:14                                   ` Eli Zaretskii
2015-04-12  4:05                                   ` Stefan Monnier
2015-04-11  6:30                         ` Eli Zaretskii
2022-04-28 10:50 ` Lars Ingebrigtsen
2022-04-28 11:48   ` Tassilo Horn
2022-04-28 11:51     ` Lars Ingebrigtsen

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=83fv86e9ed.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=20285@debbugs.gnu.org \
    --cc=tsdh@gnu.org \
    /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).