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 AT delorie DOT 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 AT cygwin DOT com Delivered-To: cygwin AT cygwin DOT 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: In-Reply-To: Date: Mon, 22 Sep 2025 13:55:14 +0200 X-Gm-Features: AS18NWAwEuXqt3day2OQGtqRjFzk_myJFq8Yz4u9w8CRJHPCbPO2Q9zCwV7KnSQ Message-ID: Subject: Re: Why does Cygwin not use MiCloneProcessAddressSpace() for fork() To: "cygwin AT cygwin DOT com" X-BeenThere: cygwin AT cygwin DOT com X-Mailman-Version: 2.1.30 List-Id: General Cygwin discussions and problem reports List-Archive: List-Post: List-Help: List-Subscribe: , From: Lionel Cons via Cygwin Reply-To: Lionel Cons Content-Type: text/plain; charset="utf-8" Sender: "Cygwin" 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 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