RFR: 8366272: The os::xxx APIs do not manage errno correctly [v3]
Anton Artemov
aartemov at openjdk.org
Mon Dec 8 11:17:52 UTC 2025
On Mon, 8 Dec 2025 09:49:33 GMT, Kim Barrett <kbarrett at openjdk.org> wrote:
>> Anton Artemov has updated the pull request incrementally with one additional commit since the last revision:
>>
>> 8366272: Addressed reviewer's comments.
>
> src/hotspot/os/bsd/os_bsd.cpp line 2281:
>
>> 2279: ErrnoPreserver ep;
>> 2280: ::close(fd);
>> 2281: errno = ep.saved_errno();
>
> Just reorder close and errno assignment here too?
Yep, same as in `os_aix.cpp`. Addressed.
> src/hotspot/os/linux/os_linux.cpp line 4936:
>
>> 4934: ErrnoPreserver ep;
>> 4935: ::close(fd);
>> 4936: errno = ep.saved_errno();
>
> Just reorder close and errno assignment here too?
Addressed.
> src/hotspot/os/posix/os_posix.cpp line 1033:
>
>> 1031: ErrnoPreserver ep;
>> 1032: permit_forbidden_function::free(p); // *not* os::free
>> 1033: errno = ep.saved_errno();
>
> `~ErrnoPreserver()` restores the saved errno, so don't need this assignment.
Addressed.
> src/hotspot/os/posix/signals_posix.cpp line 1730:
>
>> 1728: }
>> 1729:
>> 1730: errno = ep.saved_errno();
>
> `~ErrnoPreserver()` restores the saved errno, so don't need this assignment.
Right, I missed that, explicitness is redundant here. Addressed.
> src/hotspot/os/windows/os_windows.cpp line 5278:
>
>> 5276: ErrnoPreserver ep;
>> 5277: permit_forbidden_function::free(p); // *not* os::free
>> 5278: errno = ep.saved_errno();
>
> `~ErrnoPreserver()` restores the saved errno, so don't need this assignment.
Addressed.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/28086#discussion_r2598196844
PR Review Comment: https://git.openjdk.org/jdk/pull/28086#discussion_r2598199817
PR Review Comment: https://git.openjdk.org/jdk/pull/28086#discussion_r2598199592
PR Review Comment: https://git.openjdk.org/jdk/pull/28086#discussion_r2598196565
PR Review Comment: https://git.openjdk.org/jdk/pull/28086#discussion_r2598199331
More information about the hotspot-runtime-dev
mailing list