From 31175da39e6d246403b2c177005e8e76be94a17c Mon Sep 17 00:00:00 2001 From: Howard Chu Date: Wed, 16 Mar 2011 17:30:24 +0000 Subject: [PATCH] More for ITS#6853, check for trickle thread not yet started --- servers/slapd/back-bdb/tools.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/servers/slapd/back-bdb/tools.c b/servers/slapd/back-bdb/tools.c index 18bbeeeb35..735845e459 100644 --- a/servers/slapd/back-bdb/tools.c +++ b/servers/slapd/back-bdb/tools.c @@ -162,6 +162,12 @@ int bdb_tool_entry_close( slapd_shutdown = 1; #ifdef USE_TRICKLE ldap_pvt_thread_mutex_lock( &bdb_tool_trickle_mutex ); + + /* trickle thread may not have started yet */ + while ( !bdb_tool_trickle_active ) + ldap_pvt_thread_cond_wait( &bdb_tool_trickle_cond_end, + &bdb_tool_trickle_mutex ); + ldap_pvt_thread_cond_signal( &bdb_tool_trickle_cond ); while ( bdb_tool_trickle_active ) ldap_pvt_thread_cond_wait( &bdb_tool_trickle_cond_end, @@ -1256,6 +1262,7 @@ bdb_tool_trickle_task( void *ctx, void *ptr ) ldap_pvt_thread_mutex_lock( &bdb_tool_trickle_mutex ); bdb_tool_trickle_active = 1; + ldap_pvt_thread_cond_signal( &bdb_tool_trickle_cond_end ); while ( 1 ) { ldap_pvt_thread_cond_wait( &bdb_tool_trickle_cond, &bdb_tool_trickle_mutex ); -- 2.39.5