to ..._pausewait() since that's what it really does.
Add ..._pausequery() that only checks and doesn't wait.
ldap_pvt_thread_pool_t *pool ));
LDAP_F( int )
-ldap_pvt_thread_pool_pausecheck LDAP_P((
+ldap_pvt_thread_pool_pausequery LDAP_P((
+ ldap_pvt_thread_pool_t *pool ));
+
+LDAP_F( int )
+ldap_pvt_thread_pool_pausewait LDAP_P((
ldap_pvt_thread_pool_t *pool ));
LDAP_F( int )
* Return 1 if we waited, 0 if not, -1 at parameter error.
*/
int
-ldap_pvt_thread_pool_pausecheck( ldap_pvt_thread_pool_t *tpool )
+ldap_pvt_thread_pool_pausewait( ldap_pvt_thread_pool_t *tpool )
{
return handle_pause(tpool, PAUSE_ARG(CHECK_PAUSE));
}
+/* Return 1 if a pause has been requested */
+int
+ldap_pvt_thread_pool_pausequery( ldap_pvt_thread_pool_t *tpool )
+{
+ struct ldap_int_thread_pool_s *pool;
+ if ( !tpool )
+ return -1;
+
+ pool = *tpool;
+ if ( !pool )
+ return 0;
+
+ return pool->ltp_pause != 0;
+}
+
/*
* Wait for a pause, from a non-pooled thread.
*/
}
ch_free( pd.ndn[i].bv_val );
ch_free( pd.dn[i].bv_val );
- ldap_pvt_thread_pool_pausecheck( &connection_pool );
+ ldap_pvt_thread_pool_pausewait( &connection_pool );
}
ch_free( pd.ndn );
ch_free( pd.dn );
if ( slapd_shutdown )
return SLAPD_ABANDON;
- if ( !ldap_pvt_thread_pool_pausecheck( &connection_pool ))
+ if ( !ldap_pvt_thread_pool_pausewait( &connection_pool ))
ldap_pvt_thread_yield();
ldap_pvt_thread_mutex_lock( &mt->mt_mutex );
ch_free( sop );
return SLAPD_ABANDON;
}
- if ( !ldap_pvt_thread_pool_pausecheck( &connection_pool ))
+ if ( !ldap_pvt_thread_pool_pausewait( &connection_pool ))
ldap_pvt_thread_yield();
ldap_pvt_thread_mutex_lock( &si->si_ops_mutex );
}
while ( ldap_pvt_thread_mutex_trylock( &si->si_cookieState->cs_pmutex )) {
if ( slapd_shutdown )
return SYNC_SHUTDOWN;
- if ( !ldap_pvt_thread_pool_pausecheck( &connection_pool ))
+ if ( !ldap_pvt_thread_pool_pausewait( &connection_pool ))
ldap_pvt_thread_yield();
}
}
while ( ldap_pvt_thread_mutex_trylock( &si->si_mutex )) {
if ( slapd_shutdown )
return NULL;
- if ( !ldap_pvt_thread_pool_pausecheck( &connection_pool ))
+ if ( !ldap_pvt_thread_pool_pausewait( &connection_pool ))
ldap_pvt_thread_yield();
}