prior to connection management changes). No "normal" (wait
for pending operations to complete) shutdown mode (yet).
Changes:
Add connections_destroy() implementation to connections.c.
Move connections_init() call to slap_daemon().
Add connections_destroy() call to slap_daemon().
Add connections_shutdown() implementation to connections.c.
calls connection_closing()/connection_close() for each
"in use" connection.
Add connections_shutdown() call to slap_daemon_task().
remove race conditions on connection close.
BROKEN: various counters for dn=monitor.
Initial testing on FreeBSD (with and without pthreads) was successfull.
Have not yet tested preemptive threading environments.
Have not built against backends other than LDBM.
SLAP_C_ACTIVE vs SLAP_C_INACTIVE. Need to implement BINDING and CLOSING.
Added fields tracking pending (on bind) ops. Could also be used to
implement per-connection thread limits.
Likely broke things for non-posix threadings....
Update -lldap_r implementation to:
remove attribute support
hide thread detachment
provide concurrency accessors
provide initialization function
fix gethostby{addr,name}_r codes (not coverred by HAVE_REENTRANT_FUNCTIONS)
Update servers/libraries to use ldap_pvt_thread_ calls.
Cleanup server codes (no #ifdef HAVE_PTHREAD_THIS or _THATs)!
Removed -llthread
creating them detached. This hopefully will reduce problems on
draft4 pthread implementations related to creating detached
threads (which is _np under draft4) on some platforms without
causing problems with other thread implementations.
of a busy wait and allow the pthread_yield within the loop to be
removed. This was the only pthread_yield which was necessary
when usng non-preemptive threads. As such, the configure.in
sched_yield/pthread_yield missing error can be removed from
configure.in. If explicit yield function is missing, just provide
a no-op replacement.
Moved declaration of various slapd globals from main.c to init.c
so they can be shared with ldbm tools.
rename 'struct conn' to 'struct slap_conn'
rename op_function to slap_op_func for functions add/delete/free
This change is need to avoid clashing with perl internals.
Most function and variable definitions are now preceded by its extern
definition, for error checking. Retyped a number of functions, usually
to return void. Fixed a number of printf format errors.
API changes (in ldap/include):
Added avl_dup_ok, avl_prefixapply, removed ber_fatten (probably typo
for ber_flatten), retyped ldap_sort_strcasecmp, grew lutil.h.
A number of `extern' declarations are left (some added by protoize), to
be cleaned away later. Mostly strdup(), strcasecmp(), mktemp(), optind,
optarg, errno.
-thread & -pthread are still treated as libraries, will need
additional work to use them as CFLAGS.
Eliminated HAVE_DCE define (was redundant) and its use. Code
now relies on draft4 and function existance tests.