On Wed, 9 Mar 2022 11:00:15 GMT, David Holmes <dhol...@openjdk.org> wrote:

> @tstuefe do you have some examples of (3)? I don't like introducing a fake, 
> seemingly general-purpose, API for something that is very much platform 
> specific. I do dislike intensely the way the ThreadWX changes pollute shared 
> code, and as has been said in other reviews of that code, there really should 
> be a much cleaner/clearer place where these transitions occur - if we can 
> find it.

Examples for platform specifics hidden behind a common facade with one or two 
platforms missing are very common, but I assume you mean implementations that 
are stubbed out almost everywhere, right?

 "os::os_exception_wrapper" is a very good example, hiding the details of SEH - 
which only exists on Windows - from generic code. It is an empty stub 
implementation on all platforms but Windows x86. On all other platforms 
(including windows aarch) we don't have that facility.

- "os::breakpoint" is a bit similar, since native breakpoint support only 
exists on Windows

- "os::set_native_thread_name" used to initially only exist on windows and 
linux, leaving out aix, mac and solaris.

I can dig deeper, but I remember generic wrappers with only a few or only one 
platform implementation being around. Especially when we still had Solaris 
around. 

I remember because like you I never was too fond of that pattern, but I find it 
often the smaller evil.

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

PR: https://git.openjdk.java.net/jdk/pull/7727

Reply via email to