mirror of
https://github.com/openjdk/jdk.git
synced 2026-07-12 20:18:00 +00:00
8230845: ZGC: Implement ZLock using os::PlatformMutex
Reviewed-by: stefank
This commit is contained in:
parent
5e7e0e7bbe
commit
334c609caf
@ -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();
|
||||
|
||||
@ -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() :
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user