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