RFR: 8321163: [test] OutputAnalyzer.getExitValue() unnecessarily logs even when process has already completed
Jaikiran Pai
jpai at openjdk.org
Fri Dec 1 11:17:08 UTC 2023
On Fri, 1 Dec 2023 11:07:06 GMT, Stefan Karlsson <stefank at openjdk.org> wrote:
>> Can I please get a review for this change to the test library's `OutputAnalyzer` class, which proposes to remove some unnecessary logging from the `getExitValue()` call?
>>
>> As noted in https://bugs.openjdk.org/browse/JDK-8321163, right now this method logs:
>>
>>
>> [2023-11-24T11:47:54.557561Z] Waiting for completion for process 24909
>> [2023-11-24T11:47:54.557873Z] Waiting for completion finished for process 24909
>>
>>
>> even when the process has already completed and the exit value already known. The change in this PR makes it such that if the exit value is available then we no longer log this (nor call `process.waitFor()`).
>>
>> No new tests have been added given the nature of this change. tier1, tier2 and tier3 tests continue to pass with this change.
>
> test/lib/jdk/test/lib/process/OutputBuffer.java line 150:
>
>> 148: @Override
>> 149: public int getExitValue() {
>> 150: Integer exitCode = this.processExitCode;
>
> Do we really need the local `exitCode` variable? Even if another multiple threads write to processExitCode, I expect them to all write a non-null Integer.
Hello Stefan, this is just for a tiny optimization to prevent multiple reads (in the same thread) on the `volatile` field `processExitCode` in this method.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/16919#discussion_r1411952233
More information about the core-libs-dev
mailing list