mirror of
https://git.openldap.org/openldap/openldap.git
synced 2024-12-21 03:10:25 +08:00
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.
This commit is contained in:
parent
74e8e39840
commit
68ffed7130
@ -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)
|
||||
@ -405,6 +407,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;
|
||||
@ -452,7 +455,7 @@ slapadd( int argc, char **argv )
|
||||
prev = erec.e;
|
||||
}
|
||||
|
||||
if ( slap_tool_thread_max > 1 ) {
|
||||
if ( ldif_threaded ) {
|
||||
ldap_pvt_thread_mutex_lock( &add_mutex );
|
||||
add_stop = 1;
|
||||
trec.ready = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user