RFR: 8285956: (fs) Excessive default poll interval in PollingWatchService [v4]
Alan Bateman
alanb at openjdk.java.net
Tue May 3 08:24:13 UTC 2022
On Mon, 2 May 2022 21:24:13 GMT, Tyler Steele <duke at openjdk.java.net> wrote:
>> PollingWatchService.java contains the WatchService and WatchKey implementation for AIX and BSD. When a Path is [register](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/nio/file/Path.html#register(java.nio.file.WatchService,java.nio.file.WatchEvent.Kind...))ed this implementation creates a polling thread to monitor for file system changes. Currently, this thread waits 10 seconds before it's first poll, and then waits 10 seconds between subsequent polls. This interval leads to sluggish performance.
>>
>> This PR makes the following changes:
>> - Sets the initial interval to 1 second regardless of the period.
>> - Change the default period to 1 second.
>>
>> All tests in `test/jdk/java/nio/file/WatchService` passing.
>
> Tyler Steele has updated the pull request incrementally with one additional commit since the last revision:
>
> modifies comment as requested
src/java.base/share/classes/sun/nio/fs/PollingWatchService.java line 253:
> 251: private class PollingWatchKey extends AbstractWatchKey {
> 252:
> 253: private static final int POLLING_INIT_DELAY = 1;
Can you move this up to the top of the file so it's with DEFAULT_POLLING_INTERVAL? I thin both will need a short one line comment.
I'm not sure about changing it to 1s as it may lead to complaints from macOS users with programs that monitor directories with a large number of files. The right thing is of course to include a native implementation for that platform, some day :-)
-------------
PR: https://git.openjdk.java.net/jdk/pull/8479
More information about the nio-dev
mailing list