# HG changeset patch # User pliden # Date 1568356809 -7200 # Node ID 48d51def09f945a6d4460407be52d85c27569f67 # Parent f63f50a4bf438f20d161cc0d400a3093d031fc0d 8230845: ZGC: Implement ZLock using os::PlatformMutex Reviewed-by: stefank diff -r f63f50a4bf43 -r 48d51def09f9 src/hotspot/share/gc/z/zLock.hpp --- a/src/hotspot/share/gc/z/zLock.hpp Thu Sep 12 11:07:35 2019 -0700 +++ b/src/hotspot/share/gc/z/zLock.hpp Fri Sep 13 08:40:09 2019 +0200 @@ -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 +#include "runtime/os.hpp" class ZLock { private: - pthread_mutex_t _lock; + os::PlatformMutex _lock; public: - ZLock(); - ~ZLock(); - void lock(); bool try_lock(); void unlock(); diff -r f63f50a4bf43 -r 48d51def09f9 src/hotspot/share/gc/z/zLock.inline.hpp --- a/src/hotspot/share/gc/z/zLock.inline.hpp Thu Sep 12 11:07:35 2019 -0700 +++ b/src/hotspot/share/gc/z/zLock.inline.hpp Fri Sep 13 08:40:09 2019 +0200 @@ -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() :