Correctly fetch more than one watcher event list

This commit is contained in:
Cameron Gutman
2015-02-19 19:27:29 -05:00
parent 545c3397db
commit a695b4f3e3

View File

@@ -90,14 +90,16 @@ public class EvdevLoader implements Runnable {
WatchService watcher = evdev.getFileSystem().newWatchService(); WatchService watcher = evdev.getFileSystem().newWatchService();
evdev.register(watcher, StandardWatchEventKinds.ENTRY_CREATE); evdev.register(watcher, StandardWatchEventKinds.ENTRY_CREATE);
WatchKey watckKey = watcher.take(); for (;;) {
List<WatchEvent<?>> events = watckKey.pollEvents(); WatchKey watckKey = watcher.take();
for (WatchEvent event:events) { List<WatchEvent<?>> events = watckKey.pollEvents();
if (event.kind() == StandardWatchEventKinds.ENTRY_CREATE) { for (WatchEvent event:events) {
String name = event.context().toString(); if (event.kind() == StandardWatchEventKinds.ENTRY_CREATE) {
if (filter.accept(input, name)) { String name = event.context().toString();
LimeLog.info("Input " + name + " added"); if (filter.accept(input, name)) {
new EvdevHandler(conn, new File(input, name).getAbsolutePath(), mapping).start(); LimeLog.info("Input " + name + " added");
new EvdevHandler(conn, new File(input, name).getAbsolutePath(), mapping).start();
}
} }
} }
} }