ITS#7904 writewait patch

Assigned ITS#, tweaking. This ITS includes
	4f05d992f2
	716b35e191
	be792fae2c
This commit is contained in:
Howard Chu 2014-07-23 13:06:23 -07:00
parent 4f05d992f2
commit e17878933f

View File

@ -690,12 +690,15 @@ dn2entry_retry:
id = mdb_idl_first( candidates, &cursor );
}
cb.sc_writewait = mdb_writewait;
cb.sc_private = &wwctx;
wwctx.flag = 0;
wwctx.txn = ltid;
cb.sc_next = op->o_callback;
op->o_callback = &cb;
/* If we're running in our own read txn */
if ( moi == &opinfo ) {
cb.sc_writewait = mdb_writewait;
cb.sc_private = &wwctx;
wwctx.txn = ltid;
cb.sc_next = op->o_callback;
op->o_callback = &cb;
}
while (id != NOID)
{
@ -1083,17 +1086,6 @@ loop_continue:
id = mdb_idl_next( candidates, &cursor );
}
}
/* remove our writewait callback */
{
slap_callback **scp = &op->o_callback;
while ( *scp ) {
if ( *scp == &cb ) {
*scp = cb.sc_next;
cb.sc_private = NULL;
break;
}
}
}
nochange:
rs->sr_ctrls = NULL;