RFC: TLS problem

Robert Collins rbcollins@cygwin.com
Thu Aug 1 08:13:00 GMT 2002


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. 

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

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 240 bytes
Desc: This is a digitally signed message part
URL: <http://cygwin.com/pipermail/cygwin-developers/attachments/20020801/c3233bb4/attachment.sig>


More information about the Cygwin-developers mailing list