mikemccand commented on a change in pull request #1319: LUCENE-9164: process all events before closing gracefully URL: https://github.com/apache/lucene-solr/pull/1319#discussion_r389388106
########## File path: lucene/core/src/java/org/apache/lucene/index/IndexWriter.java ########## @@ -299,7 +300,77 @@ static int getActualMaxDocs() { final FieldNumbers globalFieldNumberMap; final DocumentsWriter docWriter; - private final Queue<Event> eventQueue = new ConcurrentLinkedQueue<>(); + private final EventQueue eventQueue = new EventQueue(this); + + static final class EventQueue implements Closeable { + private volatile boolean closed = false; + private final Semaphore permits = new Semaphore(Integer.MAX_VALUE); + private final Queue<Event> queue = new ConcurrentLinkedQueue<>(); + private final IndexWriter writer; + + EventQueue(IndexWriter writer) { + this.writer = writer; + } + + private void tryAcquire() { Review comment: Can we rename this to `acquire`? If it fails, it throws an exception, so upon returning, it always succeeds? ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org For additional commands, e-mail: issues-h...@lucene.apache.org