From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mo4-p00-ob.smtp.rzone.de (mo4-p00-ob.smtp.rzone.de [85.215.255.20]) by sourceware.org (Postfix) with ESMTPS id 8E9273858C83 for ; Thu, 20 Apr 2023 19:31:41 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 8E9273858C83 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=clisp.org Authentication-Results: sourceware.org; spf=none smtp.mailfrom=clisp.org ARC-Seal: i=1; a=rsa-sha256; t=1682019098; cv=none; d=strato.com; s=strato-dkim-0002; b=SPTVZBcAVxL89OuaUlZFvXeLni1D8Rosrrj9TCHRamdtFaGxn1eOpYFgFB17SffKTM QEu3nOlft37hZHazl/KsddxU+xtk7pZrIlghCE2EMwq8di5FI10CpNqrYSuE6xmeRjNM /QsXsix71IjNqqfZZT5+/FsLSP9pQfqMsIApTGkf+Gvf48r/Q7wb1KIWNIHKhHBxk1cF XvdzNcthEs/NQ6b94wNH0Tx6rm2VlnQkeql8WSlaJ4U4l5NbIpGhu9u2gJozikSa4A+u DLV1epicc0SjyJJLWpn/1XwNt7t/wPJKExp8ry4jsoYQn7r10KdV1/tASB5BFuxQIlRM gRXQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; t=1682019098; s=strato-dkim-0002; d=strato.com; h=References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Cc:Date: From:Subject:Sender; bh=R4dtXiZ1zOpmv2Sxj7U2EmbD7oZFJXlBI0GkAvuKOBU=; b=hhEf+ChZONonZ068UVig5TSdxa4l/uXsmFzxYaLt0v4vRhEPH18aLoMKG7gFdGWDHz +d4kITDkEykdOf2qzWg8rUT3FgWwSkbHoe7vfTssKi9TgNZU+cqd4R/wAsV5o6BHOks1 FtGb8XrriAw7r7jaG6Dae5t0JKYWkNcVEewz0jHBcnuF0sGI28o6DgEbW1lMMyoKcz3R z7GeEfJFK11xdOQzmjujTJWecNaBWpC9KijKo/evrBiyhwmCut0CZ4tMpCDMgWi3yBrC dRVXNuFE4RDyUm7EtIG3gbc2ptgLWxEKy6VTFGDFi8bd+Tn/VGU8aShKoli5PI+NYl5i LWdQ== ARC-Authentication-Results: i=1; strato.com; arc=none; dkim=none X-RZG-CLASS-ID: mo00 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1682019098; s=strato-dkim-0002; d=clisp.org; h=References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Cc:Date: From:Subject:Sender; bh=R4dtXiZ1zOpmv2Sxj7U2EmbD7oZFJXlBI0GkAvuKOBU=; b=GQqtjCGV/ofS/I2oi6yM/A4OvfSnddXt+lsRKvSlsx8aML7I9x5nSyrsom31IxJc/R HplThPaumQG2+CsD2A01JwpA1bUF+7e/ks4ZN4CRaayXJOdwM/O08DLGbZuBlfw7RDSN Oq0Mh0vzLVuXKCxcvBph2BhbHVf4GnPbU2ZzxAOgmwwCkOLgx0HR4i3EfgrBd+88D0F5 R/GBGCpCzh7Cq7AuDUL1SBfulzljiau+DuA87tP8jd1ZKNDewdc+csLja0EApi3c/+lZ kn3W/815GW54sm2UwGEN3GM14TemqGqRUeQNmz5ZABwHZig/33/7+oaHmU5892HMntQL 1CSQ== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; t=1682019098; s=strato-dkim-0003; d=clisp.org; h=References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Cc:Date: From:Subject:Sender; bh=R4dtXiZ1zOpmv2Sxj7U2EmbD7oZFJXlBI0GkAvuKOBU=; b=67BNNtxXH2zNbQ8juItyRPcrS/y8SRiwwaV+efklpXPdJ15j7RzS4k+2fvdAgRZptH dXQdEbMIMVAls6wOp1Dw== X-RZG-AUTH: ":Ln4Re0+Ic/6oZXR1YgKryK8brlshOcZlIWs+iCP5vnk6shH0WWb0LN8XZoH94zq68+3cfpPDj/1vgIuvkaOwJLsXaUZx50Vobw==" Received: from nimes.localnet by smtp.strato.de (RZmta 49.4.0 AUTH) with ESMTPSA id D064b6z3KJVckV1 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits)) (Client did not present a certificate); Thu, 20 Apr 2023 21:31:38 +0200 (CEST) From: Bruno Haible To: gs-cygwin.com@gluelogic.com Cc: cygwin@cygwin.com Subject: Re: posix_spawn facility Date: Thu, 20 Apr 2023 21:31:38 +0200 Message-ID: <2162092.C4sosBPzcN@nimes> In-Reply-To: References: <1752276.7aRn1RRit1@nimes> <4892432.0VBMTVartN@nimes> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="iso-8859-1" X-Spam-Status: No, score=-3.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Glenn wrote: > > > https://learn.microsoft.com/en-us/windows/win32/api/winbase/ns-winbas= e-startupinfoexa > > >=20 > > > and the PROC_THREAD_ATTRIBUTE_HANDLE_LIST argument described in > > >=20 > > > https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi= /nf-processthreadsapi-updateprocthreadattribute > > ... > Excellent (very technical) article on the subject: >=20 > Programmatically controlling which handles are inherited by new processes= in Win32 > https://devblogs.microsoft.com/oldnewthing/20111216-00/?p=3D8873 It's nice to see an example for PROC_THREAD_ATTRIBUTE_HANDLE_LIST. But the article exaggerates a problem: "But all this inheritability fiddling still had a fatal flaw: What if two threads within the same process both call Create=ADProcess but disagree on which handles they want to be inherited?" The answer, overlooked in the article, is to use DuplicateHandle and set the inheritability of the duplicate to true. Concurrently running posix_spawn invocations in other threads will not see the duplicates, since they only see HANDLEs that are assigned to file descriptors, not HANDLEs that merely reside in some data structure in memory. Bruno