RFR: 8360025: (se) Convert kqueue Selector Implementation to use FFM APIs

Darragh Clarke dclarke at openjdk.org
Tue Oct 14 10:44:13 UTC 2025


This PR was originally part of #25546, though that PR has been split in 2, the first chunk was https://github.com/openjdk/jdk/pull/27590.

This PR aims to convert KQueue to use FFM apis, the first PR in this area added all the jextract generated code needed, while this PR modifies some of the jextract code and then uses it with Kqueue.

A brief rundown of the changes:
- The files `errno_h$shared.java` , `kqueue_h$shared.java`, `timespec_h$shared.java` and `timespec_h.java` have all been deleted. This is because they all contained shared elements that could be moved into the Utility file `FFMUtils.java`
- `Kqueue.c` has been deleted, and all native methods in the other `KQueue` files have been replaced with references to the generated files kevent and kqueue. This is the bulk of the changes
- Both the `Kqueue()` and `Kevent()` methods in `kqueue_h.java`  were modified to use adapted method handles that will return the errno value

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

Commit messages:
 - cleanup
 - modify kqueue to use FFM, includes modifying previous jextract generated code

Changes: https://git.openjdk.org/jdk/pull/27796/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=27796&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8360025
  Stats: 856 lines in 18 files changed: 312 ins; 443 del; 101 mod
  Patch: https://git.openjdk.org/jdk/pull/27796.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/27796/head:pull/27796

PR: https://git.openjdk.org/jdk/pull/27796


More information about the nio-dev mailing list