SequentialWorkExecutionContext context = new SequentialWorkExecutionContext(
client, gsonProvider, workFactory, ElasticsearchWorkProcessor.this, errorHandler );
synchronized ( asyncProcessor ) {
while ( true ) {
Iterable<Iterable<ElasticsearchWork<?>>> works = asyncProcessor.asyncWorkQueue.drainToDetachedIterable();
if ( works == null ) {
asyncProcessor.asyncWorkerWasStarted.set( false );
context.flush();
return;
}
Iterable<ElasticsearchWork<?>> flattenedWorks = CollectionHelper.flatten( works );
executeSafe( flattenedWorks, false );
}