RFR: 8295125: os::signal should be os specific
David Holmes
dholmes at openjdk.org
Thu Oct 20 06:08:28 UTC 2022
This was intended as a significant cleanup RFE but it turned out things were a lot messier than initially envisaged, so the resultant cleanup is quite limited.
The OS API/namespace was simplified by removing three signal related functions that are not needed in shared code:
- signal
- user_handler
- raise
The first two were reworked and placed into PosixSignals and os::win32.
There was no need for a specific XX::raise API as os::raise simply called ::raise.
On the Posix side we had the basic signal handler installation code in two places:
1. Inline in set_signal_handler and used by nearly all the VM signals
2. In os::signal which was used by three different "clients"
- VM error handler for updating crash handler
- VM for installing SIG_BREAK handler
- JDK via JVM_RegisterSignal
This was refactored so that we have:
1. PosixSignals::install_sigaction_signal_handler
- used by the VM only
- set_signal_handler
- VM error handler for updating crash handler
- VM for installing SIG_BREAK handler
2. PosixSignals::install_generic_signal_handler
- used by JDK via JVM_RegisterSignal
The sigaction handlers were all consistently defined as per the posix definition:
void func(int signo, siginfo_t *info, void *context);
On the Windows side we just fixed the incorrect definition of UserHandler and made some consistency changes to use the right signal handler type where possible.
Thanks.
-------------
Commit messages:
- Fix erroneous cast after merge
- Merge branch 'master' into 8295125-os_signal
- 8295125: os::signal should be os specific
Changes: https://git.openjdk.org/jdk/pull/10780/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=10780&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8295125
Stats: 165 lines in 9 files changed: 81 ins; 33 del; 51 mod
Patch: https://git.openjdk.org/jdk/pull/10780.diff
Fetch: git fetch https://git.openjdk.org/jdk pull/10780/head:pull/10780
PR: https://git.openjdk.org/jdk/pull/10780
More information about the hotspot-runtime-dev
mailing list