{
runTest(new MTOperation[][]
{
{
// thread 0
new MTOperation(MTOperation.CF_BY_TX_LOOKUP),
new MTOperation(MTOperation.TM_BEGIN, 10),
new MTOperation(MTOperation.CF_GET_CONN, 1),
new MTOperation(MTOperation.XX_WAIT_FOR_SIGNAL, 888),
new MTOperation(MTOperation.XX_WAIT_FOR_SIGNAL, 999),
new MTOperation(MTOperation.TM_COMMIT)
}
,
{
// thread 1
new MTOperation(MTOperation.CF_BY_TX_LOOKUP),
new MTOperation(MTOperation.XX_WAIT_FOR_TX, 10),
new MTOperation(MTOperation.TM_RESUME, 10),
new MTOperation(MTOperation.CF_GET_CONN, 2),
new MTOperation(MTOperation.CN_CLOSE_CONN, 2),
new MTOperation(MTOperation.TM_SUSPEND, 10),
new MTOperation(MTOperation.TM_BEGIN, 20),
new MTOperation(MTOperation.CF_GET_CONN, 3),
new MTOperation(MTOperation.CN_CLOSE_CONN, 3),
new MTOperation(MTOperation.TM_COMMIT),
new MTOperation(MTOperation.XX_POST_SIGNAL, 888)
}
,
{
// thread 2
new MTOperation(MTOperation.CF_BY_TX_LOOKUP),
new MTOperation(MTOperation.XX_WAIT_FOR_TX, 10),
new MTOperation(MTOperation.TM_RESUME, 10),
new MTOperation(MTOperation.CF_GET_CONN, 4),
new MTOperation(MTOperation.CN_CLOSE_CONN, 4),
new MTOperation(MTOperation.TM_SUSPEND, 10),
new MTOperation(MTOperation.CF_GET_CONN, 5),
new MTOperation(MTOperation.CN_CLOSE_CONN, 5),
new MTOperation(MTOperation.XX_POST_SIGNAL, 999)
}
});
}