@Override public void awaitClosedTransactionId( long txId, long timeoutMillis ) throws TimeoutException, InterruptedException { assertNotClosed(); checkInitialized( lastCommittingTxField.get() ); lastClosedTx.await( txId, timeoutMillis ); }
@Test public void shouldBeAbleToReturnImmediatelyWhenNumberAvailable() throws Exception { // given final OutOfOrderSequence sequence = new ArrayQueueOutOfOrderSequence( 4, 5, EMPTY_META ); // when sequence.await( 4, 0 ); // then: should return without exceptions }
@Test public void shouldBeAbleToTimeoutWaitingForNumber() throws Exception { // given long timeout = 10; final OutOfOrderSequence sequence = new ArrayQueueOutOfOrderSequence( 3, 5, EMPTY_META ); long startTime = System.currentTimeMillis(); try { // when sequence.await( 4, timeout ); fail(); } catch ( TimeoutException e ) { // expected } long endTime = System.currentTimeMillis(); assertThat( endTime - startTime, greaterThanOrEqualTo( timeout ) ); }
@Override public void awaitClosedTransactionId( long txId, long timeoutMillis ) throws TimeoutException, InterruptedException { assertNotClosed(); checkInitialized( lastCommittingTxField.get() ); lastClosedTx.await( txId, timeoutMillis ); }