Diff for /servers/slapd/overlays/syncprov.c between versions 1.147.2.16 and 1.216

version 1.147.2.16, 2008/02/11 23:26:49 version 1.216, 2008/03/08 01:00:36
Line 1 Line 1
 /* $OpenLDAP: pkg/ldap/servers/slapd/overlays/syncprov.c,v 1.147.2.15 2008/02/09 00:08:02 quanah Exp $ */  /* $OpenLDAP: pkg/ldap/servers/slapd/overlays/syncprov.c,v 1.215 2008/02/10 23:19:43 hyc Exp $ */
 /* syncprov.c - syncrepl provider */  /* syncprov.c - syncrepl provider */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.  /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *   *
Line 853  syncprov_qplay( Operation *op, slap_over Line 853  syncprov_qplay( Operation *op, slap_over
                         so->s_res = sr->s_next;                          so->s_res = sr->s_next;
                 if ( !so->s_res )                  if ( !so->s_res )
                         so->s_restail = NULL;                          so->s_restail = NULL;
                 ldap_pvt_thread_mutex_unlock( &so->s_mutex );                  /* Exit loop with mutex held */
   
                 if ( !sr || so->s_op->o_abandon )                  if ( !sr || so->s_op->o_abandon )
                         break;                          break;
                   ldap_pvt_thread_mutex_unlock( &so->s_mutex );
   
                 opc.sdn = sr->s_dn;                  opc.sdn = sr->s_dn;
                 opc.sndn = sr->s_ndn;                  opc.sndn = sr->s_ndn;
Line 883  syncprov_qplay( Operation *op, slap_over Line 883  syncprov_qplay( Operation *op, slap_over
   
                 ch_free( sr );                  ch_free( sr );
   
                 if ( rc )                  if ( rc ) {
                           /* Exit loop with mutex held */
                           ldap_pvt_thread_mutex_lock( &so->s_mutex );
                         break;                          break;
                   }
           }
   
           /* wait until we get explicitly scheduled again */
           ldap_pvt_thread_mutex_lock( &slapd_rq.rq_mutex );
           ldap_pvt_runqueue_stoptask( &slapd_rq, rtask );
           if ( rc == 0 ) {
                   ldap_pvt_runqueue_resched( &slapd_rq, rtask, 1 );
           } else {
                   /* bail out on any error */
                   ldap_pvt_runqueue_remove( &slapd_rq, rtask );
         }          }
           ldap_pvt_thread_mutex_unlock( &slapd_rq.rq_mutex );
           ldap_pvt_thread_mutex_unlock( &so->s_mutex );
         return rc;          return rc;
 }  }
   
Line 925  syncprov_qtask( void *ctx, void *arg ) Line 940  syncprov_qtask( void *ctx, void *arg )
         /* decrement use count... */          /* decrement use count... */
         syncprov_free_syncop( so );          syncprov_free_syncop( so );
   
         /* wait until we get explicitly scheduled again */  
         ldap_pvt_thread_mutex_lock( &slapd_rq.rq_mutex );  
         ldap_pvt_runqueue_stoptask( &slapd_rq, rtask );  
         if ( rc == 0 ) {  
                 ldap_pvt_runqueue_resched( &slapd_rq, rtask, 1 );  
         } else {  
                 /* bail out on any error */  
                 ldap_pvt_runqueue_remove( &slapd_rq, rtask );  
         }  
         ldap_pvt_thread_mutex_unlock( &slapd_rq.rq_mutex );  
   
 #if 0   /* FIXME: connection_close isn't exported from slapd.  #if 0   /* FIXME: connection_close isn't exported from slapd.
                  * should it be?                   * should it be?
                  */                   */

Removed from v.1.147.2.16  
changed lines
  Added in v.1.216


______________
© Copyright 1998-2020, OpenLDAP Foundation, info@OpenLDAP.org