--- old/src/share/vm/jfr/recorder/storage/jfrStorageUtils.hpp 2019-09-02 18:08:52.654220900 +0300 +++ new/src/share/vm/jfr/recorder/storage/jfrStorageUtils.hpp 2019-09-02 18:08:51.914412100 +0300 @@ -92,7 +92,6 @@ size_t processed() const { return ConcurrentWriteOp::processed(); } }; - template class MutexedWriteOp { private: @@ -104,6 +103,15 @@ size_t processed() const { return _operation.processed(); } }; +template +class ExclusiveOp : private MutexedWriteOp { + public: + typedef typename Operation::Type Type; + ExclusiveOp(Operation& operation) : MutexedWriteOp(operation) {} + bool process(Type* t); + size_t processed() const { return MutexedWriteOp::processed(); } +}; + enum jfr_operation_mode { mutexed = 1, concurrent