I added the set-process-filter in case that would make a difference, but I don't think that is the issue here. The issue is that the services (sub processes of Emacs as you say) takes a long time to respond when Emacs is idle. If I run the same command from a terminal, that doesn't happen. On Tue, Nov 1, 2016 at 9:13 PM, Eli Zaretskii wrote: > > From: Johan Andersson > > Date: Tue, 1 Nov 2016 20:48:59 +0100 > > Cc: 24849@debbugs.gnu.org > > > > (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). > > So you are saying that the service, which is a sub-process of Emacs, > produces some output, but Emacs doesn't read that output timely enough > because it's idle? That's not possible, I think: when Emacs is idle, > it is most of the time stuck inside a call to 'pselect', which should > return immediately when some input arrived from a sub-process. > > So I guess I still don't understand something in your setup. But > what? > -- Johan Andersson System Developer, Burt www.burtcorp.com Cell: +46 761 041607 https:// github.com/rejeep | http://twitter.com/rejeep | http://twitter.com/burtcorp