bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#24849: Is Emacs put in idle mode when window is not focused?


From: Johan Andersson
Subject: bug#24849: Is Emacs put in idle mode when window is not focused?
Date: Tue, 1 Nov 2016 20:48:59 +0100

Sorry for not being clear enough.

With Prodigy, you define a service. Usually that is a path, command and arguments to the command. You can then via the Prodigy GUI manage (start/stop/restart/etc...) these services.

To put it very simple, what happens in Prodigy when a service is started is basically this:

(let* ((default-directory "/tmp")
       (process (start-process "server" nil "python" "-m" "SimpleHTTPServer" "8000")))
  (set-process-filter
   process
   (lambda (_ output)
     ;; ...
     )))

What happens in practice is that, when I get to work, I select the services I need and start them (unless Emacs was killed, they are already started). Sometimes I use Emacs quite frequently and then this is not so much of an issue because Emacs does not have time to idle. But when I don't use Emacs for a while, it will hang waiting for the response from the service (because Emacs is idle).

Hope you understand my issue better!

On Tue, Nov 1, 2016 at 5:22 PM, Eli Zaretskii <eliz@gnu.org> wrote:
> From: Johan Andersson <johan.andersson@burtcorp.com>
> Date: Tue, 1 Nov 2016 09:44:20 +0100
>
> I have written an Emacs package called Prodigy (https://github.com/rejeep/prodigy.el/). The package is used
> to manage external services from within Emacs. A service is some kind of running process, usually a web
> server or database.
>
> There has always been an issue that I have not investigated further. It seems that after a while, if Emacs is
> not focused, it ends up in some idle mode. The effect is that requests are very slow, almost hangs for a few
> seconds. If I focus the Emacs window, the request goes through immediately.
>
> The reason I'm asking about it now is that this has gotten even worse in Emacs 25.
>
> My question is if anyone knows what this is about and if it's possible to solve?

Please describe in more detail what you package does and how it is
related to "non-idle" Emacs.  IOW, why does your package care whether
Emacs is idle or not.

My suspicion is that your package somehow assumes that the Emacs main
loop is always running at the same fast speed, which is not true.  In
particular, when the frame doesn't have the focus, Emacs 25 stops the
blinking cursor timer, and if that is the only high-frequency activity
in Emacs (i.e. there's no other timers or external events that drive
the event loop), then yes, Emacs will only crank the event loop at
very low frequency.

But I'm not sure this is related to your problem, because I don't know
what does your package expect from Emacs.



--
Johan Andersson
System Developer, Burt
www.burtcorp.com
Cell: +46 761 041607
https://github.com/rejeep | http://twitter.com/rejeep | http://twitter.com/burtcorp

reply via email to

[Prev in Thread] Current Thread [Next in Thread]