[Date Prev][Date Next]
Howard Chu wrote:
> It seems the dichotomy between libldap and libldap_r is a relic from the
> bad old days of dcethreads / cmathreads when linking a threaded library
> into an otherwise non-threaded program would cause all sorts of strange
> and wonderful failures. Unless anyone knows of any current platform
> where this is unsafe, I think it's time we dropped this distinction, and
> just use libldap_r (until we get to writing a completely new C API).
> libldap_r is still missing some thread-specific features though - we
> should wrap all library initialization in a pthread_once() call, and we
> should be using thread-specific data for the LDAP* errno value.
It should be detectable whether the new libldap behaves like former libldap_r.
In python-ldap all calls into libldap or libldap_r are serialized by locks in
the Python wrapper part. The locking is different if python-ldap was built
against libldap_r (locks are per connection then). So a clear distinction with
LDAP_API_VERSION would be appreciated.