Update of /repo/OpenLDAP/pkg/ldap/libraries/libldap_r
Modified Files:
tpool.c 1.66 -> 1.67
Log Message:
Make ldap_int_thread_userctx_t.ltu_key[] a proper NULL-terminated array.
(setkey/getkey expected that, but purgekey could set a NULL in the middle.)
Added some checks for input key!=NULL.
API changes, need review - I'm not sure what's indented here:
- setkey(data=NULL, kfree!=NULL) searched as if intended to reset
the key, but updated by setting the key. Now always updates.
- setkey(key=<not found>, data=NULL) could return either success or
failure. Now succeeds iff (data == NULL && kfree == NULL).
CVS Web URLs:
http://www.openldap.org/devel/cvsweb.cgi/libraries/libldap_r/http://www.openldap.org/devel/cvsweb.cgi/libraries/libldap_r/tpool.c
Changes are generally available on cvs.openldap.org (and CVSweb)
within 30 minutes of being committed.
Update of /repo/OpenLDAP/pkg/ldap/libraries/libldap_r
Modified Files:
tpool.c 1.64 -> 1.65
Log Message:
Protect thread_keys[] with ldap_pvt_thread_pool_mutex, except in
ldap_pvt_thread_pool_purgekey() which may only be called during pauses.
Thus, also wait for pauses to finish before accessing thread_keys in
ldap_int_thread_pool_wrapper(). This may prevent pending tasks from
being started when a pause had been requested, which seems to have been
possible. If that was a feature, we can split ltp_pause==1 in 2 states:
in pause (causes wait), and pause requested.
Also move 'thread_keys[].id = <thread id>' from pool_submit to
pool_wrapper. Until pool_wrapper set the ctx as well, thread context
lookup would just return NULL anyway.
CVS Web URLs:
http://www.openldap.org/devel/cvsweb.cgi/libraries/libldap_r/http://www.openldap.org/devel/cvsweb.cgi/libraries/libldap_r/tpool.c
Changes are generally available on cvs.openldap.org (and CVSweb)
within 30 minutes of being committed.
Update of /repo/OpenLDAP/pkg/ldap/libraries/libldap_r
Modified Files:
tpool.c 1.63 -> 1.64
Log Message:
Replace state LDAP_INT_THREAD_POOL_PAUSING with member ltp_pause,
so a pause will work during states FINISHING and STOPPING.
Add missing waits and signals, and move waits in pool_wrapper().
Replace if(test) with while(test) when waiting for the multi-purpose
condition variable ltp_cond.
CVS Web URLs:
http://www.openldap.org/devel/cvsweb.cgi/libraries/libldap_r/http://www.openldap.org/devel/cvsweb.cgi/libraries/libldap_r/tpool.c
Changes are generally available on cvs.openldap.org (and CVSweb)
within 30 minutes of being committed.
Update of /repo/OpenLDAP/pkg/ldap/libraries/libldap_r
Modified Files:
tpool.c 1.62 -> 1.63
Log Message:
ITS#4943:
In ldap_pvt_thread_pool_submit(), when backing out of thread creation:
ltp_pending_count '++' -> '--'. Signal if there are no more threads.
In ldap_int_thread_pool_wrapper():
if() -> assert() where false would result in eternal loop.
CVS Web URLs:
http://www.openldap.org/devel/cvsweb.cgi/libraries/libldap_r/http://www.openldap.org/devel/cvsweb.cgi/libraries/libldap_r/tpool.c
Changes are generally available on cvs.openldap.org (and CVSweb)
within 30 minutes of being committed.