}
#ifdef SLAP_CONFIG_DELETE
- ldap_pvt_thread_mutex_lock( &si->si_ops_mutex );
- for ( so=si->si_ops, sonext=so; so; so=sonext ) {
- SlapReply rs = {REP_RESULT};
- rs.sr_err = LDAP_UNAVAILABLE;
- send_ldap_result( so->s_op, &rs );
- sonext=so->s_next;
- syncprov_drop_psearch( so, 0);
- }
- si->si_ops=NULL;
- ldap_pvt_thread_mutex_unlock( &si->si_ops_mutex );
+ if ( !slapd_shutdown ) {
+ for ( so=si->si_ops, sonext=so; so; so=sonext ) {
+ SlapReply rs = {REP_RESULT};
+ rs.sr_err = LDAP_UNAVAILABLE;
+ send_ldap_result( so->s_op, &rs );
+ sonext=so->s_next;
+ syncprov_drop_psearch( so, 0);
+ }
+ si->si_ops=NULL;
+ }
overlay_unregister_control( be, LDAP_CONTROL_SYNC );
#endif /* SLAP_CONFIG_DELETE */