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();
evdev.register(watcher, StandardWatchEventKinds.ENTRY_CREATE);
WatchKey watckKey = watcher.take();
List<WatchEvent<?>> events = watckKey.pollEvents();
for (WatchEvent event:events) {
if (event.kind() == StandardWatchEventKinds.ENTRY_CREATE) {
String name = event.context().toString();
if (filter.accept(input, name)) {
LimeLog.info("Input " + name + " added");
new EvdevHandler(conn, new File(input, name).getAbsolutePath(), mapping).start();
for (;;) {
WatchKey watckKey = watcher.take();
List<WatchEvent<?>> events = watckKey.pollEvents();
for (WatchEvent event:events) {
if (event.kind() == StandardWatchEventKinds.ENTRY_CREATE) {
String name = event.context().toString();
if (filter.accept(input, name)) {
LimeLog.info("Input " + name + " added");
new EvdevHandler(conn, new File(input, name).getAbsolutePath(), mapping).start();
}
}
}
}