www.delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2025/02/17/12:39:17

DMARC-Filter: OpenDMARC Filter v1.4.2 delorie.com 51HHdH2Q3038937
Authentication-Results: delorie.com; dmarc=pass (p=none dis=none) header.from=cygwin.com
Authentication-Results: delorie.com; spf=pass smtp.mailfrom=cygwin.com
DKIM-Filter: OpenDKIM Filter v2.11.0 delorie.com 51HHdH2Q3038937
Authentication-Results: delorie.com;
dkim=pass (1024-bit key, unprotected) header.d=cygwin.com header.i=@cygwin.com header.a=rsa-sha256 header.s=default header.b=OBrr4Q6X
X-Recipient: archive-cygwin AT delorie DOT com
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A3AB93858401
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com;
s=default; t=1739813956;
bh=gbDifJkyjua86VJp5uAP8JkIaCkh0uei9CF9gb1bG7o=;
h=Date:To:cc:Subject:In-Reply-To:References:List-Id:
List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe:
From:Reply-To:From;
b=OBrr4Q6XNV/LHcmSZxmHzgDrBeF9xMk7sp32+kXEmACv+4exdlqtbJzcr5WCLuf4w
bdJzlj+7l3t43FdD+YLsCTHkRIEov51VPcXZqkoUCn3NoPDszI02gX/4JkhZ7K69Ga
qGc6/3vqZ9gUqaTXaFspCzo/bI7Gj+o4MkIs4/E4=
X-Original-To: cygwin AT cygwin DOT com
Delivered-To: cygwin AT cygwin DOT com
DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org ADF553858C54
ARC-Filter: OpenARC Filter v1.0.0 sourceware.org ADF553858C54
ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1739813920; cv=none;
b=n/uZTZvUYAYJ4ZPmPU51oaLI+drZfDRfH4fWp8npaKCS6VLIhJxX5vICoOmkCSQXh2+OQnoqpL4Bl6TpfN5IurUpn90FoGRdjOJ6woqpOliIwJNI6Ag8eM+llCFuPYRgiYq5yKcMFv1GJ1PG4zmrO87AQPbMpoooA/8nA2ukMBs=
ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key;
t=1739813920; c=relaxed/simple;
bh=AUQvUhF9qudrfmDysJ37wqSqV58tZm2Cl9gaJrGVmN4=;
h=DKIM-Signature:Date:From:To:Subject:Message-ID:MIME-Version;
b=gpvGH7mNPjwHqNyTJMGZlARcXHADnIm/VwoOVBDZKEbZYqt51IER8tfIyVFgnK4u+Qd5JxYVsCMonCPkPULj9a7oMVpBNK6jIfVOnXxX4pBkuZYqxwd83SQyAsLHC8NiJgcS4nS3anhJiSUd0ScNzxuFaI948nDmA+AGNG7ZGJc=
ARC-Authentication-Results: i=1; server2.sourceware.org
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org ADF553858C54
Date: Mon, 17 Feb 2025 09:38:40 -0800 (PST)
X-X-Sender: jeremyd AT resin DOT csoft DOT net
To: cygwin AT cygwin DOT com
cc: cygwin-patches AT cygwin DOT com
Subject: Re: WinAPI spawn() not used by Cygwin posix_spawn()? Re: [PATCH]
Cygwin: Add spawn family of functions to docs
In-Reply-To: <Z7MKkIbgMh0C5snl@calimero.vinschen.de>
Message-ID: <7ae72b46-ca96-092e-9cd6-aaa7f61b8a0e@jdrake.com>
References: <20250216214657 DOT 2303-1-mark AT maxrnd DOT com>
<CAPJSo4VH0MufLhpgPiD1GV1gFsbTLdtOKrP82eaA_Yv_DHPXEQ AT mail DOT gmail DOT com>
<Z7MKkIbgMh0C5snl AT calimero DOT vinschen DOT de>
MIME-Version: 1.0
X-BeenThere: cygwin AT cygwin DOT com
X-Mailman-Version: 2.1.30
List-Id: General Cygwin discussions and problem reports <cygwin.cygwin.com>
List-Unsubscribe: <https://cygwin.com/mailman/options/cygwin>,
<mailto:cygwin-request AT cygwin DOT com?subject=unsubscribe>
List-Archive: <https://cygwin.com/pipermail/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-request AT cygwin DOT com?subject=help>
List-Subscribe: <https://cygwin.com/mailman/listinfo/cygwin>,
<mailto:cygwin-request AT cygwin DOT com?subject=subscribe>
From: Jeremy Drake via Cygwin <cygwin AT cygwin DOT com>
Reply-To: Jeremy Drake <cygwin AT jdrake DOT com>
Errors-To: cygwin-bounces~archive-cygwin=delorie DOT com AT cygwin DOT com
Sender: "Cygwin" <cygwin-bounces~archive-cygwin=delorie DOT com AT cygwin DOT com>

On Mon, 17 Feb 2025, Corinna Vinschen wrote:

> The requirements of posix_spawn and their helper functions are so
> that we can't easily fulfill them without doing the fork/exec
> twist.
>
> See https://man7.org/linux/man-pages/man3/posix_spawn.3.html.
> Windows CreateProcess() is not quite the same as Linux clone().
>
> However, if you think you can come up with a version only running the
> spawnve function and thus speed up Cygwin, feel free to send patches.

(based on my recollections rather than actually reading the docs again...)
Specifically, maybe the case where the attributes which are supposed to do
things effectively between fork and exec are not set could be fast-pathed
to use spawn/CreateProcess, and the more complex cases fall back to
fork/exec.  If the created process is also a Cygwin process, perhaps the
actions that are supposed to happen between fork and exec could happen in
the startup code (much like fork emulation).

Just brainstorming.

BTW, I vaguely remember an issue with GNU make in MSYS2, where we found
that making it *not* use posix_spawn made it faster.
https://github.com/msys2/MSYS2-packages/blob/a0902f1e21781022c5ceca44c64190998a62e048/make/PKGBUILD#L31-L32


-- 
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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019