mirror of
https://git.openldap.org/openldap/openldap.git
synced 2026-02-14 16:23:23 -05:00
Might help ITS#6145: change while to do-while, to make visible that the
loop saving malloced data is run at least once.
This commit is contained in:
parent
d4f2a06887
commit
02e165258c
1 changed files with 7 additions and 2 deletions
|
|
@ -555,18 +555,21 @@ add_thread_info(
|
||||||
int detached )
|
int detached )
|
||||||
{
|
{
|
||||||
ldap_debug_thread_t *t;
|
ldap_debug_thread_t *t;
|
||||||
|
|
||||||
if( thread_info_used >= thread_info_size ) {
|
if( thread_info_used >= thread_info_size ) {
|
||||||
unsigned int more = thread_info_size + 8;
|
unsigned int more = thread_info_size + 8;
|
||||||
unsigned int new_size = thread_info_size + more;
|
unsigned int new_size = thread_info_size + more;
|
||||||
|
|
||||||
t = calloc( more, sizeof(ldap_debug_thread_t) );
|
t = calloc( more, sizeof(ldap_debug_thread_t) );
|
||||||
assert( t != NULL );
|
assert( t != NULL );
|
||||||
thread_info = realloc( thread_info, new_size * sizeof(*thread_info) );
|
thread_info = realloc( thread_info, new_size * sizeof(*thread_info) );
|
||||||
assert( thread_info != NULL );
|
assert( thread_info != NULL );
|
||||||
while( thread_info_size < new_size ) {
|
do {
|
||||||
t->idx = thread_info_size;
|
t->idx = thread_info_size;
|
||||||
thread_info[thread_info_size++] = t++;
|
thread_info[thread_info_size++] = t++;
|
||||||
}
|
} while( thread_info_size < new_size );
|
||||||
}
|
}
|
||||||
|
|
||||||
t = thread_info[thread_info_used];
|
t = thread_info[thread_info_used];
|
||||||
init_usage( &t->usage, msg );
|
init_usage( &t->usage, msg );
|
||||||
t->wrapped = *thread;
|
t->wrapped = *thread;
|
||||||
|
|
@ -779,6 +782,7 @@ ldap_pvt_thread_create(
|
||||||
if( !options_done )
|
if( !options_done )
|
||||||
get_options();
|
get_options();
|
||||||
ERROR_IF( !threading_enabled, "ldap_pvt_thread_create" );
|
ERROR_IF( !threading_enabled, "ldap_pvt_thread_create" );
|
||||||
|
|
||||||
if( wrap_threads ) {
|
if( wrap_threads ) {
|
||||||
ldap_debug_thread_call_t *call = malloc(
|
ldap_debug_thread_call_t *call = malloc(
|
||||||
sizeof( ldap_debug_thread_call_t ) );
|
sizeof( ldap_debug_thread_call_t ) );
|
||||||
|
|
@ -843,6 +847,7 @@ ldap_pvt_thread_join( ldap_pvt_thread_t thread, void **thread_return )
|
||||||
remove_thread_info( t, "ldap_pvt_thread_join" ) );
|
remove_thread_info( t, "ldap_pvt_thread_join" ) );
|
||||||
adjust_count( Idx_unjoined_thread, -1 );
|
adjust_count( Idx_unjoined_thread, -1 );
|
||||||
}
|
}
|
||||||
|
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue