Fix Version/s: 16
Compatibility Risk Description:Both sigset and signal have been marked as APIs to not be used for many, many years. We do not expect anyone still using the signal-chaining facility to be using them.
Deprecate the archaic signal-chaining interfaces sigset and signal, with a view to remove them in JDK 17.
The signal-chaining facility was introduced in JDK 1.4 nearly 20 years ago and supported three different Linux signal API's:
sigaction is a Posix supported API for multi-threaded processes, that we can use cross-platform. Both
sigset are obsolete and have undefined behaviour in a multi-threaded process. From the Linux man pages:
sigset: This API is obsolete: new applications should use the POSIX signal API (
signal: The behavior of
signal()varies across UNIX versions, and has also varied historically across different versions of Linux. Avoid its use: use
Deprecate the use of
signal with a view to removing them in JDK 17.
There is no actual specification for this functionality, only the documentation in the VM guide which we no longer seem to produce.
If the user invokes the
signal functions in the signal chaining library, then we will issue a deprecation warning. e.g.
The use of the sigset function is deprecated and will be removed in a future release. Use the sigaction function instead.