@Override public void drop() throws IOException { taskCoordinator.cancel(); closeIndexResources(); try { taskCoordinator.awaitCompletion(); } catch (InterruptedException e) { throw new IOException("Interrupted while waiting for concurrent tasks to complete.", e); } deleteDirectoryContents(dir); }
@Override public IndexReader newReader() { final IndexSearcher searcher = searcherManager.acquire(); final TaskControl token = taskCoordinator.newInstance(); final Closeable closeable = new Closeable() { @Override public void close() throws IOException { searcherManager.release(searcher); token.close(); } }; return makeNewReader(searcher, closeable, token); }