@Override public void run() { count.incrementAndGet(); latch.waitForAllToStart(); latch.finish(); }
@Override public long checkPointIfNeeded( TriggerInfo triggerInfo ) { checkPointerLatch.startAndWaitForAllToStart(); checkPointerLatch.waitForAllToFinish(); return 42; }
public static void awaitLatch( CountDownLatch latch ) { awaitLatch( latch, false ); }
public void startAndWaitForAllToStart() { start(); waitForAllToStart(); }
public void finishAndWaitForAllToFinish() { finish(); waitForAllToFinish(); }
final DoubleLatch jobLatch = new DoubleLatch(); final DoubleLatch testLatch = new DoubleLatch(); jobLatch.waitForAllToStart(); testLatch.startAndWaitForAllToStart(); jobLatch.waitForAllToFinish(); concurrentCount.decrementAndGet(); testLatch.finish(); return null; }; jobLatch.startAndWaitForAllToStart(); testLatch.waitForAllToStart(); jobLatch.finish(); testLatch.waitForAllToFinish();
@Test( expected = /* THEN */ IllegalStateException.class ) public void shouldNotDropWhileCreating() throws IOException { // GIVEN final DoubleLatch latch = new DoubleLatch(); final IndexProxy inner = new IndexProxyAdapter() { @Override public void start() { latch.startAndWaitForAllToStartAndFinish(); } }; final IndexProxy outer = newContractCheckingIndexProxy( inner ); // WHEN runInSeparateThread( outer::start ); try { latch.waitForAllToStart(); outer.drop(); } finally { latch.finish(); } }
final DoubleLatch latch = new DoubleLatch( 1 ); final KernelTransaction transaction = newTransaction( loginContext() ); transactionInitializer.accept( transaction ); latch.waitForAllToStart(); transaction.markForTermination( Status.General.UnknownError ); latch.finish(); } ); latch.startAndWaitForAllToStartAndFinish();
final DoubleLatch latch = new DoubleLatch( 3, true ); try latch.start(); stateMachine.process( new RunMessage( query, EMPTY_MAP ), nullResponseHandler() ); stateMachine.process( PullAllMessage.INSTANCE, nullResponseHandler() ); latch.finish(); latch.startAndWaitForAllToStart(); Thread.sleep( 1000 ); latch.finishAndWaitForAllToFinish();
JobScheduler jobScheduler = createInitialisedScheduler(); IndexSamplingJobTracker jobTracker = new IndexSamplingJobTracker( config, jobScheduler ); final DoubleLatch latch = new DoubleLatch(); jobTracker.scheduleSamplingJob( job ); latch.startAndWaitForAllToStart(); latch.waitForAllToFinish();
@Test public void shouldProvideUserByUsernameEvenIfMidSetUsers() throws Throwable { // Given FileUserRepository users = new FileUserRepository( fs, authFile, logProvider ); users.create( new User.Builder( "oskar", LegacyCredential.forPassword( "hidden" ) ).build() ); DoubleLatch latch = new DoubleLatch( 2 ); // When Future<Object> setUsers = threading.execute( o -> { users.setUsers( new HangingListSnapshot( latch, 10L, Collections.emptyList() ) ); return null; }, null ); latch.startAndWaitForAllToStart(); // Then assertNotNull( users.getUserByName( "oskar" ) ); latch.finish(); setUsers.get(); }
@Override public void handle( String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response ) throws IOException { response.setContentType( "text/plain; charset=utf-8" ); response.setStatus( HttpServletResponse.SC_OK ); PrintWriter out = response.getWriter(); writeBatch( out, firstBatchSize ); out.flush(); latch.start(); innerBarrier.reached(); latch.finish(); writeBatch( out, otherBatchSize ); baseRequest.setHandled(true); }
@Override public void stop() { latch.finish(); }
} ); storeScan.latch.waitForAllToStart(); job.cancel().get(); storeScan.latch.waitForAllToFinish();
public DoubleLatch installPopulationJobCompletionLatch() { final DoubleLatch populationCompletionLatch = new DoubleLatch(); mockedPopulator = new IndexPopulator.Adapter() { @Override public void create() { populationCompletionLatch.startAndWaitForAllToStartAndFinish(); super.create(); } @Override public IndexSample sampleResult() { return new IndexSample(); } }; return populationCompletionLatch; }
@Override public void add( Collection<? extends IndexEntryUpdate<?>> updates ) { latch.waitForAllToStart(); }
@Override public void run() { latch.startAndWaitForAllToStartAndFinish(); }
@Override public long timestamp() { latch.start(); latch.finishAndWaitForAllToFinish(); return super.timestamp(); } }
@Override public void awaitingPopulationOfRecoveredIndex( StoreIndexDescriptor descriptor ) { // When we see that we start to await the index to populate, notify the slow-as-heck // populator that it can actually go and complete its job. indexId.set( descriptor.getId() ); latch.startAndWaitForAllToStart(); } };
final DoubleLatch jobLatch = new DoubleLatch(); final DoubleLatch testLatch = new DoubleLatch(); final ThreadLocal<Boolean> hasRun = ThreadLocal.withInitial( () -> false ); jobLatch.waitForAllToStart(); testLatch.startAndWaitForAllToStart(); jobLatch.waitForAllToFinish(); testLatch.finish(); return null; }; jobLatch.startAndWaitForAllToStart(); testLatch.waitForAllToStart(); jobLatch.finish(); testLatch.waitForAllToFinish();