From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.bugs Subject: bug#1058: 23.0.60; emacs --daemon should not return until socket is ready Date: Thu, 02 Oct 2008 17:32:32 -0400 Message-ID: References: <1222782234_2281@mail.internode.on.net> <200810011651.m91GpAZQ010333@mothra.ics.uci.edu> <87k5csds03.fsf@elegiac.orebokech.com> <200810012332.m91NWJ4s014658@mothra.ics.uci.edu> <874p3vediy.fsf@elegiac.orebokech.com> <200810020814.m928Ed1C016380@mothra.ics.uci.edu> <200810021726.m92HQcTQ017644@mothra.ics.uci.edu> Reply-To: Stefan Monnier , 1058@emacsbugs.donarmstrong.com NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1222984217 2643 80.91.229.12 (2 Oct 2008 21:50:17 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 2 Oct 2008 21:50:17 +0000 (UTC) Cc: trentbuck@gmail.com, 1058@emacsbugs.donarmstrong.com, Romain Francoise To: Dan Nicolaescu Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Thu Oct 02 23:51:14 2008 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1KlW4j-0000C6-FM for geb-bug-gnu-emacs@m.gmane.org; Thu, 02 Oct 2008 23:51:09 +0200 Original-Received: from localhost ([127.0.0.1]:37533 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KlW3g-0003LB-9p for geb-bug-gnu-emacs@m.gmane.org; Thu, 02 Oct 2008 17:50:04 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KlW3c-0003Jo-EI for bug-gnu-emacs@gnu.org; Thu, 02 Oct 2008 17:50:00 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KlW3b-0003J6-2q for bug-gnu-emacs@gnu.org; Thu, 02 Oct 2008 17:49:59 -0400 Original-Received: from [199.232.76.173] (port=44118 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KlW3a-0003J3-PJ for bug-gnu-emacs@gnu.org; Thu, 02 Oct 2008 17:49:58 -0400 Original-Received: from rzlab.ucr.edu ([138.23.92.77]:57113) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1KlW3a-00063X-CL for bug-gnu-emacs@gnu.org; Thu, 02 Oct 2008 17:49:58 -0400 Original-Received: from rzlab.ucr.edu (rzlab.ucr.edu [127.0.0.1]) by rzlab.ucr.edu (8.13.8/8.13.8/Debian-3) with ESMTP id m92LnukY014929; Thu, 2 Oct 2008 14:49:56 -0700 Original-Received: (from debbugs@localhost) by rzlab.ucr.edu (8.13.8/8.13.8/Submit) id m92Le4Si012728; Thu, 2 Oct 2008 14:40:04 -0700 X-Loop: don@donarmstrong.com Resent-From: Stefan Monnier Resent-To: bug-submit-list@donarmstrong.com Resent-CC: Emacs Bugs Resent-Date: Thu, 02 Oct 2008 21:40:04 +0000 Resent-Message-ID: Resent-Sender: don@donarmstrong.com X-Emacs-PR-Message: report 1058 X-Emacs-PR-Package: emacs X-Emacs-PR-Keywords: Original-Received: via spool by 1058-submit@emacsbugs.donarmstrong.com id=B1058.122298315711439 (code B ref 1058); Thu, 02 Oct 2008 21:40:04 +0000 Original-Received: (at 1058) by emacsbugs.donarmstrong.com; 2 Oct 2008 21:32:37 +0000 Original-Received: from pruche.dit.umontreal.ca (pruche.dit.umontreal.ca [132.204.246.22]) by rzlab.ucr.edu (8.13.8/8.13.8/Debian-3) with ESMTP id m92LWYJ9011433 for <1058@emacsbugs.donarmstrong.com>; Thu, 2 Oct 2008 14:32:35 -0700 Original-Received: from ceviche.home (vpn-132-204-232-44.acd.umontreal.ca [132.204.232.44]) by pruche.dit.umontreal.ca (8.14.1/8.14.1) with ESMTP id m92LX4km024127; Thu, 2 Oct 2008 17:33:04 -0400 Original-Received: by ceviche.home (Postfix, from userid 20848) id 76B71B4283; Thu, 2 Oct 2008 17:32:32 -0400 (EDT) In-Reply-To: <200810021726.m92HQcTQ017644@mothra.ics.uci.edu> (Dan Nicolaescu's message of "Thu, 2 Oct 2008 10:26:38 -0700 (PDT)") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux) X-NAI-Spam-Score: 0 X-NAI-Spam-Rules: 1 Rules triggered RV3117=0 X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 3) Resent-Date: Thu, 02 Oct 2008 17:49:59 -0400 X-BeenThere: bug-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:21006 Archived-At: >> I could accept a similar patch, maybe, but first I need to understand >> why/where we currently "detach" so early. > Where? in emacs.c:main, look for: > if (argmatch (argv, argc, "-daemon", "--daemon", 5, NULL, &skip_args)) > { > #ifndef DOS_NT > pid_t f = fork (); Oh, thanks. I somehow overlooked it. > - in order to not make detaching an elisp function, and have to deal > with users trying to call it from different contexts > - the `fork' call for detaching needs to happen before some of the > initialization is run (although after my 2008-09-28 change it might be > possible to push it later), and also before .emacs is run and before > the server is started. I see what you mean. But I think forking so early is wrong: all the --eval and .emacs processing should take place "in the foreground" with input/output from stdin/stdout (like --batch). That means that detaching needs indeed to be done late if we want to do it right. Of course, that means it's more difficult to implement since it can be called in many more different contexts (we can/should reject most of them, but we still need to test/detect the undesirable ones). I see 3 different solutions: 1 - Someone fixes the code so as to do it right. 2 - we don't touch anything for now postpone the fix to 23.2. 3 - we drop the `fork' for now (so it doesn't behave like an actual daemon, more like a --batch); waiting for a `daemonize' Elisp function to be added in 23.2. I'm not sure if 1 can be done in a way appropriate for 23.1. What happens to messages resulting from executing .emacs in solution nb 2 are they sent to stdout or are they silently dropped? Stefan PS: Currently "emacs --daemon" doesn't do anything for me: it immediately (as in "I've never seen Emacs start or stop so fast") returns with no output and no remaining process.