Re: Threads vs Processes (was: NuSphere and PostgreSQL
От | Manfred Spraul |
---|---|
Тема | Re: Threads vs Processes (was: NuSphere and PostgreSQL |
Дата | |
Msg-id | 3F7311B4.2000502@colorfullife.com обсуждение исходный текст |
Ответ на | Re: Threads vs Processes (was: NuSphere and PostgreSQL for window s) (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-hackers |
Tom Lane wrote: >Claudio Natoli <claudio.natoli@memetrics.com> 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
В списке pgsql-hackers по дате отправления: