mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-02-23 14:09:39 +08:00
Use a separate mutex for the replication timestamp
This commit is contained in:
parent
e8450ad588
commit
329bd66d6a
@ -91,6 +91,7 @@ ldap_pvt_thread_mutex_t num_sent_mutex;
|
||||
*/
|
||||
ldap_pvt_thread_mutex_t entry2str_mutex;
|
||||
ldap_pvt_thread_mutex_t replog_mutex;
|
||||
ldap_pvt_thread_mutex_t repstamp_mutex;
|
||||
|
||||
static const char* slap_name = NULL;
|
||||
int slapMode = SLAP_UNDEFINED_MODE;
|
||||
@ -142,6 +143,7 @@ slap_init( int mode, const char *name )
|
||||
|
||||
ldap_pvt_thread_mutex_init( &entry2str_mutex );
|
||||
ldap_pvt_thread_mutex_init( &replog_mutex );
|
||||
ldap_pvt_thread_mutex_init( &repstamp_mutex );
|
||||
ldap_pvt_thread_mutex_init( &num_ops_mutex );
|
||||
ldap_pvt_thread_mutex_init( &num_sent_mutex );
|
||||
|
||||
|
@ -1246,6 +1246,7 @@ LDAP_SLAPD_V (int) connection_pool_max;
|
||||
|
||||
LDAP_SLAPD_V (ldap_pvt_thread_mutex_t) entry2str_mutex;
|
||||
LDAP_SLAPD_V (ldap_pvt_thread_mutex_t) replog_mutex;
|
||||
LDAP_SLAPD_V (ldap_pvt_thread_mutex_t) repstamp_mutex;
|
||||
|
||||
#if defined( SLAPD_CRYPT ) || defined( SLAPD_SPASSWD )
|
||||
LDAP_SLAPD_V (ldap_pvt_thread_mutex_t) passwd_mutex;
|
||||
|
@ -129,7 +129,7 @@ replog1( struct slap_replica_info *ri, Operation *op, FILE *fp );
|
||||
void
|
||||
repstamp( Operation *op )
|
||||
{
|
||||
ldap_pvt_thread_mutex_lock( &replog_mutex );
|
||||
ldap_pvt_thread_mutex_lock( &repstamp_mutex );
|
||||
op->o_time = slap_get_time();
|
||||
if ( op->o_time == oldstamp.time ) {
|
||||
op->o_tseq = ++oldstamp.seq;
|
||||
@ -138,7 +138,7 @@ repstamp( Operation *op )
|
||||
oldstamp.seq = 0;
|
||||
op->o_tseq = 0;
|
||||
}
|
||||
ldap_pvt_thread_mutex_unlock( &replog_mutex );
|
||||
ldap_pvt_thread_mutex_unlock( &repstamp_mutex );
|
||||
}
|
||||
|
||||
void
|
||||
|
Loading…
Reference in New Issue
Block a user