mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-20 02:54:35 +02:00
8228857: Refactor PlatformMonitor into PlatformMutex and PlatformMonitor
Reviewed-by: kbarrett, dcubed, pliden
This commit is contained in:
parent
6212473fc4
commit
392b5f8f62
7 changed files with 234 additions and 94 deletions
|
@ -5149,36 +5149,42 @@ void Parker::unpark() {
|
|||
}
|
||||
}
|
||||
|
||||
// Platform Monitor implementation
|
||||
// Platform Mutex/Monitor implementations
|
||||
|
||||
os::PlatformMutex::PlatformMutex() {
|
||||
int status = os::Solaris::mutex_init(&_mutex);
|
||||
assert_status(status == 0, status, "mutex_init");
|
||||
}
|
||||
|
||||
os::PlatformMutex::~PlatformMutex() {
|
||||
int status = os::Solaris::mutex_destroy(&_mutex);
|
||||
assert_status(status == 0, status, "mutex_destroy");
|
||||
}
|
||||
|
||||
void os::PlatformMutex::lock() {
|
||||
int status = os::Solaris::mutex_lock(&_mutex);
|
||||
assert_status(status == 0, status, "mutex_lock");
|
||||
}
|
||||
|
||||
void os::PlatformMutex::unlock() {
|
||||
int status = os::Solaris::mutex_unlock(&_mutex);
|
||||
assert_status(status == 0, status, "mutex_unlock");
|
||||
}
|
||||
|
||||
bool os::PlatformMutex::try_lock() {
|
||||
int status = os::Solaris::mutex_trylock(&_mutex);
|
||||
assert_status(status == 0 || status == EBUSY, status, "mutex_trylock");
|
||||
return status == 0;
|
||||
}
|
||||
|
||||
os::PlatformMonitor::PlatformMonitor() {
|
||||
int status = os::Solaris::cond_init(&_cond);
|
||||
assert_status(status == 0, status, "cond_init");
|
||||
status = os::Solaris::mutex_init(&_mutex);
|
||||
assert_status(status == 0, status, "mutex_init");
|
||||
}
|
||||
|
||||
os::PlatformMonitor::~PlatformMonitor() {
|
||||
int status = os::Solaris::cond_destroy(&_cond);
|
||||
assert_status(status == 0, status, "cond_destroy");
|
||||
status = os::Solaris::mutex_destroy(&_mutex);
|
||||
assert_status(status == 0, status, "mutex_destroy");
|
||||
}
|
||||
|
||||
void os::PlatformMonitor::lock() {
|
||||
int status = os::Solaris::mutex_lock(&_mutex);
|
||||
assert_status(status == 0, status, "mutex_lock");
|
||||
}
|
||||
|
||||
void os::PlatformMonitor::unlock() {
|
||||
int status = os::Solaris::mutex_unlock(&_mutex);
|
||||
assert_status(status == 0, status, "mutex_unlock");
|
||||
}
|
||||
|
||||
bool os::PlatformMonitor::try_lock() {
|
||||
int status = os::Solaris::mutex_trylock(&_mutex);
|
||||
assert_status(status == 0 || status == EBUSY, status, "mutex_trylock");
|
||||
return status == 0;
|
||||
}
|
||||
|
||||
// Must already be locked
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue