[fpc-devel] threadvar implementation
Michael Schnell
mschnell at lumino.de
Mon Jul 26 15:55:42 CEST 2010
On 07/26/2010 02:51 PM, Sergei Gorelkin wrote:
> Michael Schnell wrote:
>> ...
>> This is essentially the same code as with Delphi. Supposedly as with
>> Delphi [__tls_index (417328h) ] is always 0 with normal applications.
>> (no idea what this is useful for)
>>
> The TLS index is allocated by a call to TlsAlloc at application
> startup. It will be zero for the first call and increasing for
> subsequent calls. The subsequent calls are typically done by libraries
> that use threadvars. This approach ensures that threadvar blocks of
> each module in process do not clash.
>
I see. So in a DLL that implements it's own thread system, the TLS index
will be non-zero. (The purpose being, that the Thread variables of each
library can have it's own address space, which is necessary for
non-statical linking.)
In Linux .so's this seems to be done in some other ways.
-Michael
More information about the fpc-devel
mailing list