RFR (S): 8228857: Refactor PlatformMonitor into PlatformMutex and PlatformMonitor
Per Liden
per.liden at oracle.com
Tue Aug 6 07:42:46 UTC 2019
Hi David,
On 8/2/19 1:03 AM, David Holmes wrote:
> Bug: https://bugs.openjdk.java.net/browse/JDK-8228857
> webrev: http://cr.openjdk.java.net/~dholmes/8228857/webrev/
src/hotspot/os/posix/os_posix.hpp
---------------------------------
As far as I recall, the macos bug is only related to the lifecycle of
condvars (not mutexes). Is that correct?
If so, PlatformMutex could just always own a plain pthread_mutex_t, and
the PLATFORM_MONITOR_IMPL_INDIRECT stuff could be moved to
PlatformMonitor to and only deal with the lifecycle of the
pthread_cond_t. That way the PlatformMutex would not carry the
burden/cost for working around the condvar bug, which would make
PlatformMutex even more attractive as a replacement/backing for ZLocks.
How does that sound?
cheers,
Per
>
> As suggested by Per Liden when PlatformMonitor was introduced by
> JDK-8210832 we should refactor PlatformMonitor into a simpler
> PlatformMutex extended by PlatformMonitor. That would potentially allow
> other synchronization objects e.g. Zlocks, to be replaced by a suitable
> PlatformX class, and allows us to redefine JVM_RawMonitor support to use
> it (forthcoming change).
>
> The refactoring would be obvious and simple if not for the macOS PThread
> allocation bug workaround. I had to change the Posix variant so that we
> only use the Impl helper class on macOS, so that we can separate the
> allocation of the pthread_mutex_t and pthread_cond_t. For macOS both get
> allocated in the PlatformMutex.
>
> There are not actual usage changes in this RFE.
>
> Testing: mach5 tiers 1-3
>
> Thanks,
> David
> -----
More information about the hotspot-dev
mailing list