Tom Lane wrote:
Claudio Natoli <[EMAIL PROTECTED]> writes:
How are you dealing with the issue of wanting some static variables to
be per-thread and others not?
To be perfectly honest, I'm still trying to familiarize myself with the code
sufficiently well so that I can tell which variables need to be per-thread
and which are shared (and, in turn, which of these need to be protected from
concurrent access).
No. Not protected from concurrent access. Each thread must have it's own
copy.
Well, the first-order approximation would be to duplicate the current
fork semantics: *all* static variables are per-thread, and should be
copied from the parent thread at thread creation. If there is some
reasonably non-invasive way to do that, we'd have a long leg up on the
problem.
There is a declspec(thread) that makes a global variable per-thread.
AFAIK it uses linker magic to replace the actual memory accesses with
calls to TlsAlloc() etc. Note that declspec(thread) doesn't work from
within dynamic link libraries, but that shouldn't be a big problem.
--
Manfred
---------------------------(end of broadcast)---------------------------
TIP 7: don't forget to increase your free space map settings