Skip site navigation (1) Skip section navigation (2)

Re: [HACKERS] Threads vs Processes

From: "Merlin Moncure" <merlin(dot)moncure(at)rcsonline(dot)com>
To: "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: <pgsql-hackers(at)postgresql(dot)org>,<pgsql-hackers-win32(at)postgresql(dot)org>,"Bruce Momjian" <pgman(at)candle(dot)pha(dot)pa(dot)us>,"Shridhar Daithankar" <shridhar_daithankar(at)persistent(dot)co(dot)in>,"Claudio Natoli" <claudio(dot)natoli(at)memetrics(dot)com>
Subject: Re: [HACKERS] Threads vs Processes
Date: 2003-09-26 12:11:44
Message-ID: 303E00EBDD07B943924382E153890E5434A9E2@cuthbert.rcsinc.local (view raw or flat)
Thread:
Lists: pgsql-hackerspgsql-hackers-win32
Tom Lane wrote:
"Merlin Moncure" <merlin(dot)moncure(at)rcsonline(dot)com> writes:
>> All TLS variables *must* be static (or implicitly static
>> through extern, i.e. no 'auto' variables)

>I assume you mean static as in not-auto, rather than static as in
>not-global.  Otherwise we have a problem here.

Yes, you are correct.

>> and their addresses can not be
>> assumed to be constant.

>Surely the addresses can be assumed constant within a thread.
Otherwise
>we have a problem here too.

Quoting from the MSDN:
The address of a thread local object is not considered constant, and any
expression involving such an address is not considered a constant
expression. In standard C, the effect of this is to forbid the use of
the address of a thread local variable as an initializer for an object
or pointer. For example, the following code will be flagged as an error
by the C compiler: 
#define Thread  __declspec( thread )
Thread int tls_i;
int *p = &tls_i;        //This will generate an error in C.
<end>

(Note this does not apply to C++)


>> Taking addresses of TLS variables should be considered illegal,

>Sorry, no can accept that restriction.

I thought not.  I believe if TLS variables are detail managed through
the win32 API, some of these problems can be avoided (after all, these
examples are for the Microsoft compiler). 

Merlin



Responses

pgsql-hackers by date

Next:From: Shridhar DaithankarDate: 2003-09-26 12:34:11
Subject: Re: [HACKERS] Threads vs Processes
Previous:From: Sailesh KrishnamurthyDate: 2003-09-26 10:09:39
Subject: Re: PostgreSQL not ACID compliant?

pgsql-hackers-win32 by date

Next:From: Shridhar DaithankarDate: 2003-09-26 12:34:11
Subject: Re: [HACKERS] Threads vs Processes
Previous:From: Zeugswetter Andreas SB SDDate: 2003-09-26 08:53:14
Subject: Re: [HACKERS] Threads vs Processes

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group