On Mon, 22 Feb 2021 11:44:13 GMT, Pavel Rappo <pra...@openjdk.org> wrote:

>> The standard doclet works by creating `HtmlDocument` objects and then 
>> writing them out. Writing them can be safely done on a separate thread, and 
>> doing so results in about an 8% speedup, by overlapping the write/IO time 
>> with the time to generate the next page to be written.
>> 
>> The overall impact on the codebase is deliberately small, coming down to a 
>> critical `if` statement in `HtmlDocletWriter` to "write now" or "write 
>> later". As such, it is easy to disable the feature if necessary, although no 
>> issues have been found in practice. The background writer uses an 
>> `ExecutorService`, which provides a lot of flexibility, but experiments show 
>> that it is sufficient to use a single background thread and to block if new 
>> tasks come available while writing a file.
>> 
>> The feature is "default on", with a hidden option to disable it if necessary.
>
> src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/BackgroundWriter.java
>  line 165:
> 
>> 163:         try {
>> 164:             executor.shutdown();
>> 165:             executor.awaitTermination(5, TimeUnit.MINUTES);
> 
> The writer can safely read the `taskBusy` field if `awaitTermination` returns 
> `true`. Please check that boolean status.

I don't understand why you think it is important to check `taskBusy`. If 
nothing else, this is only in the verbose/utilization code.

-------------

PR: https://git.openjdk.java.net/jdk/pull/2665

Reply via email to