DMARC-Filter: OpenDMARC Filter v1.4.2 delorie.com 58MBuLBo1446379
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 58MBuLBo1446379
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=ZKUeHB3n
X-Recipient: archive-cygwin@delorie.com
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 4B061385843F
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com;
	s=default; t=1758542180;
	bh=XJkDHNAOGGMSpQjtUxP+CRCvPAHigaRChLPHXWVt7M0=;
	h=References:In-Reply-To:Date:Subject:To:List-Id:List-Unsubscribe:
	 List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:
	 From;
	b=ZKUeHB3ni0ZUygIG2FG8QUcctspek3wLab48J0OpQXIcUsV430S5DPq8PMYfmx/Qh
	 aAJVDNGDUDBnze6ns7nrGcQeTzjVxzfM/syJvsX3a8W7hmK7gkOTpnvqzrflRAUn7c
	 YqlmeeMo6oOsFV52vPtpI1NlS8UkJbIkz2IMH0D8=
X-Original-To: cygwin@cygwin.com
Delivered-To: cygwin@cygwin.com
DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 7442B3858C31
ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 7442B3858C31
ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1758542154; cv=none;
 b=arTAZhbePhi3UhgKg7gtyhSBiC+hJzJs88aaLzIODhdwwyCRqQ8oo3rR6Cxwk0k10Nt+zhv/dDcPmlYj5ZOhUCorlUihdwGOOgC8Qyvc9GQObWcGEIZAlcQ5zFsC6ON6T4AE+frD+snPrEhArl7hVzZIhscHuOmo+YTw2L+f9Z8=
ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key;
 t=1758542154; c=relaxed/simple;
 bh=EcjodqAbPK9nbq5278MXqWagVixFS54OB8QLvFkHUyU=;
 h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To;
 b=BKl63SZRYyn/pLsQH2O1h8sXWmTR0JHnxmr48ai9rsOjVgUr7MnqV8r7f4bCWkhY+RIjboBTwS3yEU07x9fwIEat/A67rCSvzgrjR2vreSK1i9lRldmGh2lZ+WjGe1aY07YxRBnSQdIHdh3khaMrzMX4/uHIbjU3wmsMmiF91d8=
ARC-Authentication-Results: i=1; server2.sourceware.org
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 7442B3858C31
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1758542153; x=1759146953;
 h=content-transfer-encoding:to:subject:message-id:date:from
 :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
 :subject:date:message-id:reply-to;
 bh=EcjodqAbPK9nbq5278MXqWagVixFS54OB8QLvFkHUyU=;
 b=v9IGNBtuaUkdFFxUh4cnNP1dpDUOdkI9vmXLt8dzD8uBHcv/s/XJV0qzbc2Lh6WnJE
 EEma/eR8n4mMRkVEf//NM/uFDQxoeq62PRj0a3vcRCvmllsEDn5I2qsf2s9UtxdcxKa0
 BE7CzAEHUzxxH5DgupgtqoWcvayDgJ9hOazYkgXM6muR2KF4nan8NWA7p4JjkZzk2MLV
 yjVGXXpLpHty3rXaS7wuIsT8GYN28U43pqTsRgEDanzvEq3OnyPqB6cDrG5LiuaJIgkO
 hkcxokvrjiOpXTZdOwncvI+IKWCasUHDcZJb1mO3zbmKrVaCo59EicGI/YYF9dXcHdtk
 6l9A==
X-Gm-Message-State: AOJu0Yx7it3lo44ERHHXhxulqw+w7mkGCJtbGP0pPOMHGLKlTfZJuNDh
 htUycoIiV/0NmV7gzy5sOHbVHX3VcWJEOn3hEocfq5WIFdMOBdf17+eNbwqvPxUWRiQ1fTjEGcj
 OFEkvo+BTIbmnkH9EQCRPdfMFHT8iKRHxFknG
X-Gm-Gg: ASbGncvBC9n+DKT5226cIRUA9jeC0bV9CpP+BfK7EmJtoi2TAOHrAKJIt/uSQW4ND5l
 l4CN3fj59WOqfY8vvaazyO9Io6NOHoDJoxWsD8FD4Ju0fjQKweciLA8HhGZES6iegRsrU77A2jf
 TiJ4t2J6yE+eifYPjtF5RGBUf8Q2KQ9FBsCpDu3KYqoW3bgBgjOGpOfn4eZIehO6J1ugBRb3UbM
 /K/kXs644CERExrGw==
X-Google-Smtp-Source: AGHT+IG7+jpuOqI7Bokpx1XbBELVReNTU8+XDHxghp+LKGo5mvcGTkzpXhxLU3DIk8Pq8ZLdPh4DU9eZWKzQL5lf+Bg=
X-Received: by 2002:a05:6402:3582:b0:633:8787:607b with SMTP id
 4fb4d7f45d1cf-6338796a805mr2664425a12.12.1758542152551; Mon, 22 Sep 2025
 04:55:52 -0700 (PDT)
MIME-Version: 1.0
References: <CAN0SSYzFKJoZRU7fCm4YKH5O_J3SMvCjjgfua7zUJQL4Zj3rzA@mail.gmail.com>
 <CAN0SSYzB77kcuM-jzRkpDhx6ncpGP0kb70W7goXF4ZHAtdzaLg@mail.gmail.com>
 <GV1PR03MB80787CAF2F37B7BD610383F78D12A@GV1PR03MB8078.eurprd03.prod.outlook.com>
In-Reply-To: <GV1PR03MB80787CAF2F37B7BD610383F78D12A@GV1PR03MB8078.eurprd03.prod.outlook.com>
Date: Mon, 22 Sep 2025 13:55:14 +0200
X-Gm-Features: AS18NWAwEuXqt3day2OQGtqRjFzk_myJFq8Yz4u9w8CRJHPCbPO2Q9zCwV7KnSQ
Message-ID: <CAPJSo4VbBtzTKqyy+oT0qp9QEUyGktxWyZtDPY1D89_cE4ximg@mail.gmail.com>
Subject: Re: Why does Cygwin not use MiCloneProcessAddressSpace() for fork()
To: "cygwin@cygwin.com" <cygwin@cygwin.com>
X-BeenThere: cygwin@cygwin.com
X-Mailman-Version: 2.1.30
List-Id: General Cygwin discussions and problem reports <cygwin.cygwin.com>
List-Archive: <https://cygwin.com/pipermail/cygwin/>
List-Post: <mailto:cygwin@cygwin.com>
List-Help: <mailto:cygwin-request@cygwin.com?subject=help>
List-Subscribe: <https://cygwin.com/mailman/listinfo/cygwin>,
 <mailto:cygwin-request@cygwin.com?subject=subscribe>
From: Lionel Cons via Cygwin <cygwin@cygwin.com>
Reply-To: Lionel Cons <lionelcons1972@gmail.com>
Content-Type: text/plain; charset="utf-8"
Sender: "Cygwin" <cygwin-bounces~archive-cygwin=delorie.com@cygwin.com>
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from base64 to 8bit by delorie.com id 58MBuLBo1446379

On Mon, 22 Sept 2025 at 13:28, Old, Oliver via Cygwin <cygwin@cygwin.com> wrote:
>
> Mark Liam Brown wrote:
> > This is exposed to the userspace as NtCreateProcessEx() as documented in
> > https://github.com/huntandhackett/process-cloning
>
> From the linked page:
> > Unfortunately, it doesn't matter which method we prefer because the results
> > will be identically disappointing: STATUS_PROCESS_IS_TERMINATING, or, in other
> > words, "An attempt was made to access an exiting process." The system
> > considers the cloned threadless process as waiting for deletion and, thus,
> > refuses to create threads in it – something we inevitably need to execute
> > code. Sorry, but NtCreateProcessEx-based cloning is incompatible with code
> > execution.
> >
> > > Note that it wasn't always the case. The kernel allowed creating threads in
> > > such processes until Windows 8.1.

That was a bug, long fixed. UWIN added pthread support at some point,
so yes, threads and RtlCloneUserProcess() do work together.

Lionel

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

