src/share/vm/jfr/recorder/storage/jfrMemorySpace.inline.hpp

changeset 9928
d2c2cd90513e
parent 9858
b985cbb00e68
     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  

mercurial