pqxx::thread_safety_model Struct Reference

Descriptor of library's thread-safety model. More...

#include <util.hxx>

List of all members.

Public Attributes

bool have_strerror_r
 Does standard C library offer strerror_r?
bool safe_libpq
 Is the underlying libpq build thread-safe?
bool safe_query_cancel
 Is canceling queries thread-safe?
bool safe_result_copy
 Are copies of pqxx::result and pqxx::binarystring objects thread-safe?
bool safe_kerberos
 Is Kerberos thread-safe?
std::string description
 A human-readable description of any thread-safety issues.


Detailed Description

Descriptor of library's thread-safety model.

This describes what the library knows about various risks to thread-safety.


Member Data Documentation

Does standard C library offer strerror_r?

If not, its strerror implementation may still be thread-safe. Check your compiler's manual.

Without strerror_r or a thread-safe strerror, the library can't safely obtain descriptions of certain run-time errors. In that case, your application must serialize all use of libpqxx.

Referenced by pqxx::describe_thread_safety().

Is the underlying libpq build thread-safe?

A "false" here may mean one of two things: either the libpq build is not thread-safe, or it is a thread-safe build of an older version that did not offer thread-safety information.

In that case, the best fix is to rebuild libpqxx against (a thread-safe build of) a newer libpq version.

Referenced by pqxx::describe_thread_safety().

Is canceling queries thread-safe?

If not, avoid use of the pqxx::pipeline class in threaded programs. Or better, rebuild libpqxx against a newer libpq version.

Referenced by pqxx::describe_thread_safety().

Are copies of pqxx::result and pqxx::binarystring objects thread-safe?

If true, it's safe to copy an object of either of these types (copying these is done very efficiently, so don't worry about data size) and hand the copy off to another thread. The other thread may access the copy freely without any concurrency concerns.

Referenced by pqxx::describe_thread_safety().

Is Kerberos thread-safe?

Warning:
Is currently always false.
If your application uses Kerberos, all accesses to libpqxx or Kerberos must be serialized. Confine their use to a single thread, or protect it with a global lock.

Referenced by pqxx::describe_thread_safety().

A human-readable description of any thread-safety issues.

Referenced by pqxx::describe_thread_safety().


The documentation for this struct was generated from the following file:

Generated on Mon Feb 15 18:22:53 2010 for libpqxx by  doxygen 1.5.5