[Date Prev][Date Next]
Re: back-config, overlays
Pierangelo Masarati wrote:
No, it does not pre-empt. It prevents new jobs from starting in the
thread pool and waits for running jobs to finish. Otherwise it would be
impossible to do any changes safely.
There will not be any active operations when back-config is operating.
Remember that on write operations it suspends the thread pool before it
does anything else. As such, you can perform whatever cleanup is
required, issuing ldap_unbind()s on all of the cached connections,
without regard to locking or any other concerns, before returning from
the config handler.
I've noticed the "suspend" of the thread pool; maybe I'm overlooking it,
but my understanding is that it essentially stops execution of other
threads at the point they are. When they resume, they continue execution
from the point they were suspended. If a threasd in back-ldap resumes
__after__ a call to ldap_back_getconn(), then the thread has a pointer to
a ldapconn structure, which will contain a NULL ld, but I think back-ldap
does not check it before passing to ldap_* calls. In this case we'd need
to always check lc->lc_ld before calling any client library function.
-- Howard Chu
Chief Architect, Symas Corp. Director, Highland Sun
Symas: Premier OpenSource Development and Support