public void syncFlushPacketQueue(MCCraftPacket[] packetWrappers) { while (!resyncQueue.isEmpty()) { Packet p = resyncQueue.pollFirst(); if (p != null) { syncedSendPacket(p, packetWrappers); } } }
public static void main(String[] args) { if (args.length < 2) System.exit(1); if (args.length > 2) { callMainSearch(args[1]); System.exit(1); } try { Indexer indexer = new Indexer(new File(args[1])); IndexerPool.addIndexer(indexer); } catch (Exception e) { e.printStackTrace(); System.exit(1); } String[] sfxes = {".PDF", ".pdf"}; Collection<File> files = FileSystemUtils.getFiles(args[0], sfxes); LinkedList<TextExtractorRunner> extractorRunners = new LinkedList<TextExtractorRunner>(); LinkedList<Thread> threads = new LinkedList<Thread>(); LinkedBlockingDeque<File> queue = new LinkedBlockingDeque<File>(); int i = 0; while (i++ < 8) { extractorRunners.add(new TextExtractorRunner(new TextExtractor(), queue)); } Iterator<TextExtractorRunner> rit = extractorRunners.iterator(); while (rit.hasNext()) { Thread t = new Thread(rit.next()); threads.add(t); t.start(); } for (File f : files) { queue.offer(f); } while (true) { if (queue.isEmpty()) { break; } Utility.Sleep(100); } rit = extractorRunners.iterator(); while (rit.hasNext()) { rit.next().stop(); } Iterator<Thread> thIt = threads.iterator(); while (thIt.hasNext()) { try { thIt.next().join(); } catch (InterruptedException e) { e.printStackTrace(); } } System.out.println("Done ...................."); }