From: Howard Chu Date: Wed, 30 May 2012 02:46:17 +0000 (-0700) Subject: Additional fix for threaded slapadd X-Git-Tag: OPENLDAP_REL_ENG_2_4_32~114 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=43cd073eaf3b76ea4299e8263f251f7ac9f78c28;p=openldap Additional fix for threaded slapadd If slapadd'ing a config DB and tool-threads is set in the config LDIF, the checks for slap_tool_thread_max will be invalid. --- diff --git a/servers/slapd/slapadd.c b/servers/slapd/slapadd.c index ec0eb011d2..034e941404 100644 --- a/servers/slapd/slapadd.c +++ b/servers/slapd/slapadd.c @@ -302,11 +302,13 @@ getrec_thr(void *ctx) return NULL; } +static int ldif_threaded; + static int getrec(Erec *erec) { int rc; - if ( slap_tool_thread_max < 2 ) + if ( !ldif_threaded ) return getrec0(erec); while (!trec.ready) @@ -404,6 +406,7 @@ slapadd( int argc, char **argv ) ldap_pvt_thread_mutex_init( &add_mutex ); ldap_pvt_thread_cond_init( &add_cond ); ldap_pvt_thread_create( &thr, 0, getrec_thr, NULL ); + ldif_threaded = 1; } erec.nextline = 0; @@ -447,7 +450,7 @@ slapadd( int argc, char **argv ) entry_free( erec.e ); } - if ( slap_tool_thread_max > 1 ) { + if ( ldif_threaded ) { ldap_pvt_thread_mutex_lock( &add_mutex ); add_stop = 1; trec.ready = 0;