--- a/src/hotspot/os/windows/os_windows.hpp Wed Aug 14 01:40:29 2019 +0000
+++ b/src/hotspot/os/windows/os_windows.hpp Wed Aug 14 00:18:00 2019 -0400
@@ -187,18 +187,34 @@
} ;
-// Platform specific implementation that underpins VM Monitor/Mutex class
-class PlatformMonitor : public CHeapObj<mtSynchronizer> {
+// Platform specific implementations that underpin VM Mutex/Monitor classes
+
+class PlatformMutex : public CHeapObj<mtSynchronizer> {
+ // Disable copying
+ PlatformMutex(const PlatformMutex&);
+ PlatformMutex& operator=(const PlatformMutex&);
+
+ protected:
+ CRITICAL_SECTION _mutex; // Native mutex for locking
+
+ public:
+ PlatformMutex();
+ ~PlatformMutex();
+ void lock();
+ void unlock();
+ bool try_lock();
+};
+
+class PlatformMonitor : public PlatformMutex {
private:
- CRITICAL_SECTION _mutex; // Native mutex for locking
CONDITION_VARIABLE _cond; // Native condition variable for blocking
+ // Disable copying
+ PlatformMonitor(const PlatformMonitor&);
+ PlatformMonitor& operator=(const PlatformMonitor&);
public:
PlatformMonitor();
~PlatformMonitor();
- void lock();
- void unlock();
- bool try_lock();
int wait(jlong millis);
void notify();
void notify_all();