From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dedi548.your-server.de (dedi548.your-server.de [85.10.215.148]) by sourceware.org (Postfix) with ESMTPS id 74FB23858403 for ; Wed, 30 Mar 2022 08:58:53 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 74FB23858403 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=embedded-brains.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=embedded-brains.de Received: from sslproxy06.your-server.de ([78.46.172.3]) by dedi548.your-server.de with esmtpsa (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1nZUAF-000DYf-T0 for newlib@sourceware.org; Wed, 30 Mar 2022 10:58:51 +0200 Received: from [82.100.198.138] (helo=mail.embedded-brains.de) by sslproxy06.your-server.de with esmtpsa (TLSv1.3:TLS_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nZUAF-0001P6-Qy for newlib@sourceware.org; Wed, 30 Mar 2022 10:58:51 +0200 Received: from localhost (localhost [127.0.0.1]) by mail.embedded-brains.de (Postfix) with ESMTP id 885C14800B7 for ; Wed, 30 Mar 2022 10:58:51 +0200 (CEST) Received: from mail.embedded-brains.de ([127.0.0.1]) by localhost (zimbra.eb.localhost [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id zvFXXqXvBnMp for ; Wed, 30 Mar 2022 10:58:51 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by mail.embedded-brains.de (Postfix) with ESMTP id 373AB480103 for ; Wed, 30 Mar 2022 10:58:51 +0200 (CEST) X-Virus-Scanned: amavisd-new at zimbra.eb.localhost Received: from mail.embedded-brains.de ([127.0.0.1]) by localhost (zimbra.eb.localhost [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id E72_9zmg2awI for ; Wed, 30 Mar 2022 10:58:51 +0200 (CEST) Received: from [10.10.171.14] (unknown [10.10.171.14]) by mail.embedded-brains.de (Postfix) with ESMTPSA id 0FD034800B7 for ; Wed, 30 Mar 2022 10:58:51 +0200 (CEST) Message-ID: Date: Wed, 30 Mar 2022 10:58:50 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.7.0 Content-Language: en-US To: Newlib From: Sebastian Huber Subject: Why is __sglue initialized in _cygtls::init_thread()? Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Authenticated-Sender: smtp-embedded@poldinet.de X-Virus-Scanned: Clear (ClamAV 0.103.5/26497/Wed Mar 30 10:19:51 2022) X-Spam-Status: No, score=-4.8 required=5.0 tests=BAYES_00, KAM_DMARC_STATUS, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: newlib@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Newlib mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Mar 2022 08:58:55 -0000 Hello, I have a question to _cygtls::init_thread(): void _cygtls::init_thread (void *x, DWORD (*func) (void *, void *)) { if (x) { memset (this, 0, sizeof (*this)); _REENT_INIT_PTR (&local_clib); stackptr =3D stack; altstack.ss_flags =3D SS_DISABLE; if (_GLOBAL_REENT) { local_clib._stdin =3D _GLOBAL_REENT->_stdin; local_clib._stdout =3D _GLOBAL_REENT->_stdout; local_clib._stderr =3D _GLOBAL_REENT->_stderr; if (_GLOBAL_REENT->__cleanup) local_clib.__cleanup =3D _cygtls::cleanup_early; local_clib.__sglue._niobs =3D 3; local_clib.__sglue._iobs =3D &_GLOBAL_REENT->__sf[0]; } } Why is __sglue initialized here? It seems to be unused in general for=20 local_clib.__sglue: 1. The __sglue::next member was still NULL, so even if someone calls=20 _reclaim_reent(), cleanup_glue() would not get called. 2. FILE objects are added to the __sglue list only by __sfp(). This=20 function only uses the __sglue member of _GLOBAL_REENT. It could be used by _fcloseall_r() through _fwalk_reent() which seems to=20 be unused by Cygwin. It could be used by __fp_lock_all() and __fp_unlock_all() through=20 _fwalk() which is used only by Cygwin in the pthread::atfork*() functions= . It could be used by _cleanup_r() through _fwalk_reent(). In the above three cases the file walk would operate on the three FILE=20 objects in _GLOBAL_REENT->__sf. I would like to change the __sglue=20 handling, so it would be great if someone could explain the Cygwin use=20 case for the __sglue initialization in _cygtls::init_thread(). --=20 embedded brains GmbH Herr Sebastian HUBER Dornierstr. 4 82178 Puchheim Germany email: sebastian.huber@embedded-brains.de phone: +49-89-18 94 741 - 16 fax: +49-89-18 94 741 - 08 Registergericht: Amtsgericht M=C3=BCnchen Registernummer: HRB 157899 Vertretungsberechtigte Gesch=C3=A4ftsf=C3=BChrer: Peter Rasmussen, Thomas= D=C3=B6rfler Unsere Datenschutzerkl=C3=A4rung finden Sie hier: https://embedded-brains.de/datenschutzerklaerung/