X-Recipient: archive-cygwin AT delorie DOT com DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 147F8386101C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com; s=default; t=1596451810; bh=yTEWRvkPftPfemfCdNWeOQifltoXIKHqzjQJtO1HFWs=; h=Date:From:To:Subject:References:In-Reply-To:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: Reply-To:From; b=JVVLlUBHBo/DFclS3uLhYps/ov6Y+SbkcVeBJGBaCB0i3cm/5kZ7ZPKP2C8XeHiNl Dl9njauJEvWn7cOlVEe75B3+hJVwxVdy04KRKtvCvFHdNIsWkhNtrBZJp4X3faVM4t mhZ71oa2q8IT0zVlYMcuKFBo8RLr+3McD+Ej4b74= X-Original-To: cygwin AT cygwin DOT com Delivered-To: cygwin AT cygwin DOT com DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 8126F385DC00 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=cygwin.com Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=corinna-cygwin AT cygwin DOT com Date: Mon, 3 Aug 2020 12:50:04 +0200 From: Corinna Vinschen To: cygwin AT cygwin DOT com Subject: Re: Synchronization problem with posix_spawn Message-ID: <20200803105004.GK460314@calimero.vinschen.de> Mail-Followup-To: cygwin AT cygwin DOT com References: <864b3031-9fc8-beb3-ba7c-1ade4c31a288 AT cornell DOT edu> <20200730115913 DOT GL4206 AT calimero DOT vinschen DOT de> <20200730171723 DOT GA460314 AT calimero DOT vinschen DOT de> <86051625-646d-065a-8543-1c3086411d3d AT cornell DOT edu> <20200731081025 DOT GB460314 AT calimero DOT vinschen DOT de> <9c44f4351d459a2ba8d27c65bf71679208cb13d6 DOT camel AT tdcadsl DOT dk> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <9c44f4351d459a2ba8d27c65bf71679208cb13d6.camel@tdcadsl.dk> X-Provags-ID: V03:K1:b6grvC2OKaQ4xqec8ab8zmKf4+qcozntJCn/i7h4TyWBtRZ3StJ 0JIYgcrOGhe6kZrPiSfWGWPOR0NpEybDHaQiSn9WrrjMrrs2EYRqPi89O1h/W2c1ZmM6Oyc UIVhgwZ6Vvz+f7M/qJz6feKwE56RB1oEQ5H8LTSXgH1XxkhlNjYwekIxcXSZJyjEeEbJCye aVci33NkSdNpTxM/YbE3g== X-UI-Out-Filterresults: notjunk:1;V03:K0:svmG+Y8TnYw=:RK4gH6gLlNflY8HoJB+YqC SGvcysZTqzDaWXWMTdH+trnxS3Oy01UkM5z4UHI0vIXWQCZdtqRhErhjSBq0DOR+TtuuRrzed lMT8XgXlpTC9VJuRxMcAAMCIqbd9snU4qiJwYzjC3YkyHftW+JGPD6xeTegiz1q1vJMZwZxvN CZjy7MAJ2scgpiT7Bn8zkyiEeoRTZSfBMbrW3YvrNdB7IjtlMP746+hQOEB1jjzvdYNoXeMxH apnBnAlIWMoYE4271Br9tAlMn1xd5xg8GZQdsLrf+NYLoegL4oRqGgrNWy4EROzwibuH/93zu cNkh4R4LytQNd2imxydBzOACxD4d23ZUlG0b3i7jXhEqKGgjns2wOnwX+BZQfZpGFTZDvoEBv xBcUC8iaUquipKGaS+ez8v3A5YxlA2yQ12qC2rlpWmnvSE579gBQEZEckBikkSXCRK0pY2YLk dhVVPZiCrDF3sNoz/cK1bOxjGdmT0c9sXRh+UTz8jdiOIzIgmeGCNBQD792jvxXqUYzhPHa2z qutloXyUjzQRt5eICdCJG187ol9y8L3iCBbz7svMNiYPw5yUCbtkgL8X1jquZlhuU5li3+O6k IRu56JxNNA+U5kOk+m8NV6N30Fa4crMI/n91j+3oJyOIni+N4/yQ+pZE32A2Pnlma8v46CTfR gzah7OdzdAZNlYL14hlI0AXy+5+r2dHKRWdNyghSOSqP1NsYQ8yamTqwLk2NQkLh5B19dbn9f p/utWeVTCmiHywOTePMus9NcPgFSh2PWO5smR4Aph8P3v9WKi5v++laiUqC2vhXlNe/wL0zfm hcBwKarEf9dAltkPfFvKn8Huq2VZn9ZL3ndw9Q4AsWOTRzoDkrZzkuLy/6pZtMaMqAYpw+nYq KOHMK8MaolWWxyfOMCgw== X-Spam-Status: No, score=-99.9 required=5.0 tests=BAYES_00, GOOD_FROM_CORINNA_CYGWIN, KAM_DMARC_STATUS, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_NEUTRAL, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: cygwin AT cygwin DOT com X-Mailman-Version: 2.1.29 Precedence: list List-Id: General Cygwin discussions and problem reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: cygwin AT cygwin DOT com Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: cygwin-bounces AT cygwin DOT com Sender: "Cygwin" On Aug 3 11:10, Peter Dons Tychsen via Cygwin wrote: > Hi all, > > On Fri, 2020-07-31 at 10:10 +0200, Corinna Vinschen wrote: > > Oh well. I did a quick test with your new testcase (thanks for > > that!) > > and it seems to be a bit more complicated than I anticipated > > yesterday. > > The parent-child relationship between the processes is broken. I > > have > > to think a while about this problem, stay tuned. > > I also have seen this problem. I propose a different solution however. > Why no get rid of the call to fork() all together. One of the things > bogging down performance on larger setups is the calls to fork() are is > inherently slow and should be avoided at all costs. Instead why don't > we just call spawn(vpe) instead, which is quite stable and fast. > > This would give a _huge_ boost to e.g. larger build jobs. Make supports > posix_spawn, but it does not help on cygwin at it just calls back into > fork(). spawn alone doesn't cut it, due to the requirement to support the additional file actions and spawn atributes POSIX defines. This would require a revamp of Cygwin's spawn functionality, which is already quite complicated. So this is something I'm only willing to do in homeopathic doses. Corinna -- Corinna Vinschen Cygwin Maintainer -- Problem reports: https://cygwin.com/problems.html FAQ: https://cygwin.com/faq/ Documentation: https://cygwin.com/docs.html Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple