Doug McNaught <doug@mcnaught.org> writes:
> Lee Kindness <lkindness@csl.co.uk> writes:
>
> > Tom Lane writes:
> > > Okay, so it seems -D_REENTRANT is the appropriate fix.
> > >
> > > We could either add that to the template/solaris file, or just add a
> > > note to FAQ_Solaris advising that it be added to the configure switches
> > > if people intend to use libpq in threaded programs. Is there any
> > > cost or downside to just adding it always in template/solaris?
> >
> > However, _REENTRANT is not a Solarisism... On all (recent) UNIX
> > systems it toggles on correct handling for thread specific instances
> > of historically global variables (eg errno). It should be considered
> > for all platforms if libpq is intended to be used from threaded
> > programs.
>
> I know libpq is "officially" non-threadsafe, but is there anything in
> there that would actually cause a problem, assuming either a
> connection per thread or proper locking on the application's part?
> Most of the data in the library seems to be per-connection...
The documentation states:
"libpq is thread-safe as of PostgreSQL 7.0, so long as no two threadsattempt to manipulate the same PGconn object at
thesame time."
Tomas