I do not know for sure to what extent GCC supports TLS on Windows. There are
compiler extensions that can be used under Windows, like __declspec(thread)
which automagically handles the declaration and initialization of the TLS
variable rather than dynamically calling the TlsAlloc, TlsFree, TlsSetValue,
and TlsGetValue. I also believe they have extensions in the compiler that
recognize that you are using TLS (when using __declspec) and therefore allow
you to access them without having to use the TlsSetValue and TlsGetValue.
Sorry I don't about GCC, but I hope this additional information helps.

Keith

-----Original Message-----
From: Bruce Momjian [mailto:[EMAIL PROTECTED] 
Sent: Thursday, September 25, 2003 11:57 AM
To: Keith Bottner
Cc: 'Tom Lane'; 'Claudio Natoli'; 'Robert Treat';
[EMAIL PROTECTED]; [EMAIL PROTECTED]
Subject: Re: [HACKERS] Threads vs Processes (was: NuSphere and PostgreSQL
for windows)


Keith Bottner wrote:
> Typically variables that you want to be per-thread are stored in what 
> Microsoft calls Thread Local Storage (TLS). Variables that you want 
> shared you can just treat as globals and statics with the appropriate 
> threading synchronization primitives. With Windows 2000 and later you 
> have up to 1088 TLS locations that you can use, of course these can be 
> pointers to memory which can store whatever you want.

Goes GCC on Windows support TLS, or only Microsoft compilers?

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  [EMAIL PROTECTED]               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073


---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
    (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])

Reply via email to