Marcus Agehall (Roxen IS) @ Pike (-) developers forum wrote:
I think we have an old issue in the (old) postgres module which may be serious enough to fix in 7.8 before the release.
that both pgresult.c and postgres.c seems to define pike_postgres_mutex if the postgres library isn't thread-safe. This is
Changing the definition in pgresult.c to a simple extern makes the module compile.
Committed this now.
After lots of digging, I found that we look for the function PQsetnonblocking() to determine if the library is thread-safe. This seems somewhat stupid, so I would propose that we also introduce a configure test to properly check if the library is reentrant by actually calling PQisthreadsafe(), with a fallback to the current test, in case older libs doesn't support that function.
I'm not that proficient with configure magic, and since the old Postgres module is a likely candidate to be deprecated/dropped in the near future, it seems like a waste of time to spend the effort.