[I posted this earlier but it went into moderation since I wasn't subscribed - reposting after waiting a day]
I am a little confused on when to use the thread functions when using LDAP C-SDK (ldap_thread_fns). Mozilla documentation says if I need to share a LDAP structure among different threads I got to use the thread functions. What does "Share" mean in this context - share as in used by different threads concurrently or shared as in say a connection pool type of scenario where only one thread uses the LDAP* at one time but any thread can use any LDAP* at different times, Or does it imply both/ any? I have some legacy code which uses the C-SDK which currently is crashing in the threading functions. The code has a connection pool implementation which uses one separate LDAP* per connection. At any point of time only one thread uses a given LDAP* but as the connections are handed over randomly to calling threads, a thread X may use connection A at one time and after it is done, some other thread Y may come in and use the same connection A, exclusively for that time. Are the threading functions required in this scenario? I ask because I suspect that once a thread uses a LDAP* it may leave some state behind that may be problematic when used with other thread and thus I would end up requiring to use the thread functions. I also think that I may maintain a static mapping between thread- >LDAP* and always use the same LDAP* for the particular thread but since caller threads are randomly created and destroyed this approach doesn't sound promising. I seem to recall that the prldap functions automatically take care of thread safety? Would switching to prldap from plain ldap_* functions be the wise thing to do here? Thanks in advance for any clues! Parag _______________________________________________ dev-tech-ldap mailing list [email protected] https://lists.mozilla.org/listinfo/dev-tech-ldap
