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 wrote: > > From: Johan Andersson > > 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