X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Finit.c;h=527fe165076e6af080d0ee8b5cccf517a9db7677;hb=5d64cae0fe2ed5c88fedb3082388e21b26d123c5;hp=5921fd59f85c48af1c608dddb114eed0533baec5;hpb=fc49135a367e90d8fccbe9ad43c07c61340a74c7;p=openldap diff --git a/servers/slapd/init.c b/servers/slapd/init.c index 5921fd59f8..527fe16507 100644 --- a/servers/slapd/init.c +++ b/servers/slapd/init.c @@ -11,10 +11,63 @@ #include "portable.h" #include "slap.h" +/* + * read-only global variables or variables only written by the listener + * thread (after they are initialized) - no need to protect them with a mutex. + */ +int slap_debug = 0; + +#ifdef LDAP_DEBUG +int ldap_syslog = LDAP_DEBUG_STATS; +#else +int ldap_syslog; +#endif + +int ldap_syslog_level = LOG_DEBUG; +char *default_referral; +time_t starttime; +pthread_t listener_tid; +int g_argc; +char **g_argv; + +/* + * global variables that need mutex protection + */ +int active_threads; +pthread_mutex_t active_threads_mutex; +pthread_cond_t active_threads_cond; + +time_t currenttime; +pthread_mutex_t currenttime_mutex; + +pthread_mutex_t new_conn_mutex; + +#ifdef SLAPD_CRYPT +pthread_mutex_t crypt_mutex; +#endif +pthread_mutex_t strtok_mutex; + +int num_conns; +long ops_initiated; +long ops_completed; +pthread_mutex_t ops_mutex; + +long num_entries_sent; +long num_bytes_sent; +pthread_mutex_t num_sent_mutex; +/* + * these mutexes must be used when calling the entry2str() + * routine since it returns a pointer to static data. + */ +pthread_mutex_t entry2str_mutex; +pthread_mutex_t replog_mutex; + void init( void ) { pthread_mutex_init( &active_threads_mutex, pthread_mutexattr_default ); + pthread_cond_init( &active_threads_cond, pthread_condattr_default ); + pthread_mutex_init( &new_conn_mutex, pthread_mutexattr_default ); pthread_mutex_init( ¤ttime_mutex, pthread_mutexattr_default ); pthread_mutex_init( &strtok_mutex, pthread_mutexattr_default );