From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.1 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from minnie.tuhs.org (minnie.tuhs.org [45.79.103.53]) by inbox.vuxu.org (OpenSMTPD) with ESMTP id 077a9e8a for ; Thu, 11 Apr 2019 23:57:54 +0000 (UTC) Received: by minnie.tuhs.org (Postfix, from userid 112) id 2DA399507D; Fri, 12 Apr 2019 09:57:53 +1000 (AEST) Received: from minnie.tuhs.org (localhost [127.0.0.1]) by minnie.tuhs.org (Postfix) with ESMTP id 85D5695077; Fri, 12 Apr 2019 09:57:20 +1000 (AEST) Authentication-Results: minnie.tuhs.org; dkim=pass (1024-bit key; unprotected) header.d=eschatologist.net header.i=@eschatologist.net header.b="nd2Z3qiA"; dkim-atps=neutral Received: by minnie.tuhs.org (Postfix, from userid 112) id 55A2895077; Fri, 12 Apr 2019 09:57:18 +1000 (AEST) X-Greylist: delayed 597 seconds by postgrey-1.36 at minnie.tuhs.org; Fri, 12 Apr 2019 09:57:17 AEST Received: from insect.birch.relay.mailchannels.net (insect.birch.relay.mailchannels.net [23.83.209.93]) by minnie.tuhs.org (Postfix) with ESMTPS id 6025C95075 for ; Fri, 12 Apr 2019 09:57:17 +1000 (AEST) X-Sender-Id: dreamhost|x-authsender|cmhanson@eschatologist.net Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id 22D715E1474; Thu, 11 Apr 2019 23:37:58 +0000 (UTC) Received: from pdx1-sub0-mail-a65.g.dreamhost.com (100-96-11-84.trex.outbound.svc.cluster.local [100.96.11.84]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id 8DDEB5E0D8D; Thu, 11 Apr 2019 23:37:57 +0000 (UTC) X-Sender-Id: dreamhost|x-authsender|cmhanson@eschatologist.net Received: from pdx1-sub0-mail-a65.g.dreamhost.com ([TEMPUNAVAIL]. [64.90.62.162]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384) by 0.0.0.0:2500 (trex/5.17.2); Thu, 11 Apr 2019 23:37:58 +0000 X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|cmhanson@eschatologist.net X-MailChannels-Auth-Id: dreamhost X-Suffer-Wide-Eyed: 17e1c0eb65f048cf_1555025877964_3102585929 X-MC-Loop-Signature: 1555025877964:2174268145 X-MC-Ingress-Time: 1555025877963 Received: from pdx1-sub0-mail-a65.g.dreamhost.com (localhost [127.0.0.1]) by pdx1-sub0-mail-a65.g.dreamhost.com (Postfix) with ESMTP id 691CB81851; Thu, 11 Apr 2019 16:37:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=eschatologist.net; h= content-type:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; s= eschatologist.net; bh=l793wzL3o72vmPk0YH2jXO40dmg=; b=nd2Z3qiAig /4UfJU6g3pXPdOlV+pbDV4P9hNKweN/gI8sNlsj1HPeJ8np6hA7U6mrAEDyVBMBc KnZHnEAbQglRh77pwCq0zPrqrD1NsWjRlWNz5498ocZuGN/E/iJzIr0k0RzKIAcj 6BXCUun8lylgtoQO9tHZtx6IVH/r9nxG4= Received: from [17.212.150.151] (unknown [17.212.150.151]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: cmhanson@eschatologist.net) by pdx1-sub0-mail-a65.g.dreamhost.com (Postfix) with ESMTPSA id A7A3581843; Thu, 11 Apr 2019 16:37:53 -0700 (PDT) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.8\)) X-DH-BACKEND: pdx1-sub0-mail-a65 From: Chris Hanson In-Reply-To: Date: Thu, 11 Apr 2019 16:37:52 -0700 Content-Transfer-Encoding: quoted-printable Message-Id: <7A06D817-72BD-47CB-BEE5-25755B4C3ABF@eschatologist.net> References: To: Richard Salz X-Mailer: Apple Mail (2.3445.104.8) X-VR-OUT-STATUS: OK X-VR-OUT-SCORE: -100 X-VR-OUT-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeduuddrvddtgddvudcutefuodetggdotefrodftvfcurfhrohhfihhlvgemucggtfgfnhhsuhgsshgtrhhisggvpdfftffgtefojffquffvnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjughrpegtggfuhfgjfffgkfhfvffosehtqhhmtdhhtdejnecuhfhrohhmpeevhhhrihhsucfjrghnshhonhcuoegtmhhhrghnshhonhesvghstghhrghtohhlohhgihhsthdrnhgvtheqnecuffhomhgrihhnpehmihgtrhhoshhofhhtrdgtohhmnecukfhppedujedrvdduvddrudehtddrudehudenucfrrghrrghmpehmohguvgepshhmthhppdhhvghloheplgdujedrvdduvddrudehtddrudehudgnpdhinhgvthepudejrddvuddvrdduhedtrdduhedupdhrvghtuhhrnhdqphgrthhhpeevhhhrihhsucfjrghnshhonhcuoegtmhhhrghnshhonhesvghstghhrghtohhlohhgihhsthdrnhgvtheqpdhmrghilhhfrhhomheptghmhhgrnhhsohhnsegvshgthhgrthholhhoghhishhtrdhnvghtpdhnrhgtphhtthhopehtuhhhshesthhuhhhsrdhorhhgnecuvehluhhsthgvrhfuihiivgeptd Subject: Re: [TUHS] "Fork considered harmful" X-BeenThere: tuhs@minnie.tuhs.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: The Unix Heritage Society mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: tuhs@tuhs.org Errors-To: tuhs-bounces@minnie.tuhs.org Sender: "TUHS" On Apr 10, 2019, at 4:06 PM, Richard Salz wrote: >=20 > Any view on this? = https://www.microsoft.com/en-us/research/publication/a-fork-in-the-road/ Quite correct in my experience. The posix_spawn() API isn=E2=80=99t a panacea but (especially with a few = *_np extensions) it=E2=80=99s much saner for large real-world = applications that run a ton of subprocesses. I work on a large IDE which = invokes compilers and such, and it makes a huge difference. The biggest need for *_np extensions has been control over fd = inheritance and chdir behavior. Otherwise a subprocess can wind up = inheriting random or no fds from a multithreaded process (thanks to the = race between setting up and finishing the call) and you need to use = pthread_{chdir,fchdir}() or openat() to set the working directory in = which the subprocess is launched. -- Chris