src/share/vm/jfr/recorder/storage/jfrStorage.cpp

changeset 9928
d2c2cd90513e
parent 9858
b985cbb00e68
     1.1 --- a/src/share/vm/jfr/recorder/storage/jfrStorage.cpp	Mon Jun 15 20:21:56 2020 +0100
     1.2 +++ b/src/share/vm/jfr/recorder/storage/jfrStorage.cpp	Wed Jun 17 11:43:05 2020 +0300
     1.3 @@ -340,9 +340,9 @@
     1.4  void JfrStorage::register_full(BufferPtr buffer, Thread* thread) {
     1.5    assert(buffer != NULL, "invariant");
     1.6    assert(buffer->retired(), "invariant");
     1.7 +  assert(buffer->acquired_by(thread), "invariant");
     1.8    if (!full_buffer_registration(buffer, _age_mspace, control(), thread)) {
     1.9      handle_registration_failure(buffer);
    1.10 -    buffer->release();
    1.11    }
    1.12    if (control().should_post_buffer_full_message()) {
    1.13      _post_box.post(MSG_FULLBUFFER);
    1.14 @@ -377,8 +377,8 @@
    1.15      }
    1.16    }
    1.17    assert(buffer->empty(), "invariant");
    1.18 +  assert(buffer->identity() != NULL, "invariant");
    1.19    control().increment_dead();
    1.20 -  buffer->release();
    1.21    buffer->set_retired();
    1.22  }
    1.23  
    1.24 @@ -733,13 +733,14 @@
    1.25    Scavenger(JfrStorageControl& control, Mspace* mspace) : _control(control), _mspace(mspace), _count(0), _amount(0) {}
    1.26    bool process(Type* t) {
    1.27      if (t->retired()) {
    1.28 +      assert(t->identity() != NULL, "invariant");
    1.29 +      assert(t->empty(), "invariant");
    1.30        assert(!t->transient(), "invariant");
    1.31        assert(!t->lease(), "invariant");
    1.32 -      assert(t->empty(), "invariant");
    1.33 -      assert(t->identity() == NULL, "invariant");
    1.34        ++_count;
    1.35        _amount += t->total_size();
    1.36        t->clear_retired();
    1.37 +      t->release();
    1.38        _control.decrement_dead();
    1.39        mspace_release_full_critical(t, _mspace);
    1.40      }

mercurial