Mailing-List: contact cygwin-developers-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-developers-owner AT cygwin DOT com Delivered-To: mailing list cygwin-developers AT cygwin DOT com Subject: Re: RFC: TLS problem From: Robert Collins To: Thomas Pfaff Cc: cygwin-developers AT cygwin DOT com In-Reply-To: References: Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-dqNuIGtWrPimJQuCnzW9" Date: 02 Aug 2002 01:13:17 +1000 Message-Id: <1028214797.7511.37.camel@lifelesswks> Mime-Version: 1.0 --=-dqNuIGtWrPimJQuCnzW9 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Fri, 2002-08-02 at 00:48, Thomas Pfaff wrote: > While tracking down the problems with a threaded perl i recognized a > problem with TLS that is probably the reason for the forked child crash: Good catch.=20 TLS and pthread_keys are different. At worst all we need to do for pthread_key support is recreate the TLS for each pthread_key, and copy the value for *the forking thread*. I.E. we don't need to handle all cases of TLS behaviour, and we don't need to look behind the scenes at the MS thread specific data. An atfork() handler registered by pthread_key_create will do this nicely, and be almost trivial to code. It is worthwhile checking the IEEE spec on this one before coding anything, because I *thought* I had coded to that already. As far as supporting a win32 TLS using application that wants to fork, well it's an interesting idea, but IMO inpractical. Adding fork() support to WIN32 native calls is a whole project in and of itself. Cheers, Rob --=-dqNuIGtWrPimJQuCnzW9 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org iEYEABECAAYFAj1JUA0ACgkQI5+kQ8LJcoI2fgCfQZNw53wWgvS2sodglVW0G6P+ df8AnRevrRYEZ5DTohSKvBFzE4yMJL5t =gLhc -----END PGP SIGNATURE----- --=-dqNuIGtWrPimJQuCnzW9--