Joachim Wieland wrote:
> On Fri, Jan 26, 2007 at 10:10:20PM +0100, Magnus Hagander wrote:
>>>> I would like to build pg on VC2005. How do I use pthreads that is
>>>> mentioned in the README file. Do I need the DLL? Sources? LIB?
>>>> Where do I install or copy them..
> 
>>> Err, pthreads is a threads library for Unix, I don't think Windows has
>>> that, nor can I think of a situation where you'd need to worry about
>>> threads anyway?
> 
>> There is a pthreads for win32 as well.
>> However, you don't need it to build, unless you build ecpg. I forgot to
>> update the README when I put that patch in .-)
> 
> Actually you can build ecpg without pthreads as well, but you lose
> thread-safety. The problem is that ecpg and libpq do different things on
> Windows if you define ENABLE_THREAD_SAFETY.
> 
> ENABLE_THREAD_SAFETY is set to 1 in pg_config.h.win32, with it being
> defined, ecpg needs the pthreads libraries, while libpq uses the stub
> functions from pthread-win32.c. Libpq can do that because it doesn't use
> pthread_(get|set)specific. If we implemented those functions by means of the
> native Windows API as well, they could also be used by ecpg and we would not
> need the pthread libs on Windows anymore.
> 
> Magnus, can we? ;-)

Absolutely, I'll be happy to test your patch :)

Anyway. We hard-code thread-safety to on for Win32, because win32 is a
threaded platform in general - almost everything can be exposed to
threading even if they don't want it. For example a VB program that has
no threading at all can still run with multiple threads because of the
framework.

//Magnus

---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster

Reply via email to