Use a separate mutex for the replication timestamp

This commit is contained in:
Howard Chu 2003-12-24 14:32:33 +00:00
parent e8450ad588
commit 329bd66d6a
3 changed files with 5 additions and 2 deletions

View File

@ -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 );

View File

@ -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;

View File

@ -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