1.1 --- a/src/share/vm/jfr/recorder/storage/jfrMemorySpace.inline.hpp Mon Jun 15 20:21:56 2020 +0100 1.2 +++ b/src/share/vm/jfr/recorder/storage/jfrMemorySpace.inline.hpp Wed Jun 17 11:43:05 2020 +0300 1.3 @@ -346,19 +346,19 @@ 1.4 template <typename Mspace> 1.5 inline bool ReleaseOp<Mspace>::process(typename Mspace::Type* t) { 1.6 assert(t != NULL, "invariant"); 1.7 - if (t->retired() || t->try_acquire(_thread)) { 1.8 - if (t->transient()) { 1.9 - if (_release_full) { 1.10 - mspace_release_full_critical(t, _mspace); 1.11 - } else { 1.12 - mspace_release_free_critical(t, _mspace); 1.13 - } 1.14 - return true; 1.15 + // assumes some means of exclusive access to t 1.16 + if (t->transient()) { 1.17 + if (_release_full) { 1.18 + mspace_release_full_critical(t, _mspace); 1.19 + } else { 1.20 + mspace_release_free_critical(t, _mspace); 1.21 } 1.22 - t->reinitialize(); 1.23 - assert(t->empty(), "invariant"); 1.24 - t->release(); // publish 1.25 + return true; 1.26 } 1.27 + t->reinitialize(); 1.28 + assert(t->empty(), "invariant"); 1.29 + assert(!t->retired(), "invariant"); 1.30 + t->release(); // publish 1.31 return true; 1.32 } 1.33