RFR: 8347408: Create an internal method handle adapter for system calls with errno
Per Minborg
pminborg at openjdk.org
Fri Jan 10 09:34:56 UTC 2025
Going forward, converting older JDK code to use the relatively new FFM API requires system calls that can provide `errno` and the likes to explicitly allocate a MemorySegment to capture potential error states. This can lead to negative performance implications if not designed carefully and also introduces unnecessary code complexity.
Hence, this PR proposes to add a _JDK internal_ method handle adapter that can be used to handle system calls with `errno`, `GetLastError`, and `WSAGetLastError`.
It currently relies on a thread-local cache of MemorySegments to allide allocations. If, in the future, a more efficient thread-associated allocation scheme becomes available, we could easily migrate to that one.
Tested and passed tiers 1-3.
-------------
Commit messages:
- Simplify and optimize return filters
- Select the appropriate layout
- Merge branch 'master' into errno-util
- Bump copyright years and rename method
- Merge branch 'master' into errno-util
- Merge branch 'master' into errno-util
- Add tests and improve docs
- Clean up
- Rename test
- Reuse MHs
- ... and 8 more: https://git.openjdk.org/jdk/compare/8c87ea2b...878a4096
Changes: https://git.openjdk.org/jdk/pull/22391/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=22391&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8347408
Stats: 368 lines in 3 files changed: 367 ins; 0 del; 1 mod
Patch: https://git.openjdk.org/jdk/pull/22391.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/22391/head:pull/22391
PR: https://git.openjdk.org/jdk/pull/22391
More information about the core-libs-dev
mailing list