8230845: ZGC: Implement ZLock using os::PlatformMutex

Reviewed-by: stefank
This commit is contained in:
Per Lidén 2019-09-13 08:40:09 +02:00
parent 5e7e0e7bbe
commit 334c609caf
2 changed files with 8 additions and 18 deletions

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -25,16 +25,13 @@
#define SHARE_GC_Z_ZLOCK_HPP
#include "memory/allocation.hpp"
#include <pthread.h>
#include "runtime/os.hpp"
class ZLock {
private:
pthread_mutex_t _lock;
os::PlatformMutex _lock;
public:
ZLock();
~ZLock();
void lock();
bool try_lock();
void unlock();

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -26,27 +26,20 @@
#include "gc/z/zLock.hpp"
#include "runtime/atomic.hpp"
#include "runtime/os.inline.hpp"
#include "runtime/thread.hpp"
#include "utilities/debug.hpp"
inline ZLock::ZLock() {
pthread_mutex_init(&_lock, NULL);
}
inline ZLock::~ZLock() {
pthread_mutex_destroy(&_lock);
}
inline void ZLock::lock() {
pthread_mutex_lock(&_lock);
_lock.lock();
}
inline bool ZLock::try_lock() {
return pthread_mutex_trylock(&_lock) == 0;
return _lock.try_lock();
}
inline void ZLock::unlock() {
pthread_mutex_unlock(&_lock);
_lock.unlock();
}
inline ZReentrantLock::ZReentrantLock() :