< prev index next >
src/share/vm/jfr/recorder/storage/jfrStorageUtils.hpp
Print this page
rev 9053 : 8220293: Deadlock in JFR string pool
Reviewed-by: rehn, egahlin
*** 90,100 ****
ConcurrentWriteOpExcludeRetired(Operation& operation) : ConcurrentWriteOp<Operation>(operation) {}
bool process(Type* t);
size_t processed() const { return ConcurrentWriteOp<Operation>::processed(); }
};
-
template <typename Operation>
class MutexedWriteOp {
private:
Operation& _operation;
public:
--- 90,99 ----
*** 102,111 ****
--- 101,119 ----
MutexedWriteOp(Operation& operation) : _operation(operation) {}
bool process(Type* t);
size_t processed() const { return _operation.processed(); }
};
+ template <typename Operation>
+ class ExclusiveOp : private MutexedWriteOp<Operation> {
+ public:
+ typedef typename Operation::Type Type;
+ ExclusiveOp(Operation& operation) : MutexedWriteOp<Operation>(operation) {}
+ bool process(Type* t);
+ size_t processed() const { return MutexedWriteOp<Operation>::processed(); }
+ };
+
enum jfr_operation_mode {
mutexed = 1,
concurrent
};
< prev index next >