< prev index next > src/hotspot/share/gc/g1/g1VMOperations.hpp
Print this page
};
// Concurrent G1 stop-the-world operations such as remark and cleanup.
class VM_G1PauseConcurrent : public VM_Operation {
uint _gc_id;
const char* _message;
protected:
VM_G1PauseConcurrent(const char* message) :
! _gc_id(GCId::current()), _message(message) { }
virtual void work() = 0;
// Does this concurrent pause affect the memory pools? If so, update the collectionUsage()
// MemoryMXBean for the old gen memory pool (which is the only pool registered for concurrent
// pauses).
};
// Concurrent G1 stop-the-world operations such as remark and cleanup.
class VM_G1PauseConcurrent : public VM_Operation {
uint _gc_id;
+ bool _is_shutting_down;
const char* _message;
protected:
VM_G1PauseConcurrent(const char* message) :
! _gc_id(GCId::current()), _is_shutting_down(false), _message(message) { }
virtual void work() = 0;
// Does this concurrent pause affect the memory pools? If so, update the collectionUsage()
// MemoryMXBean for the old gen memory pool (which is the only pool registered for concurrent
// pauses).
VM_G1PauseCleanup() : VM_G1PauseConcurrent("Pause Cleanup") { }
VMOp_Type type() const override { return VMOp_G1PauseCleanup; }
void work() override;
};
+ class VM_G1StopMarking : public VM_Operation {
+ public:
+ VM_G1StopMarking() : VM_Operation() { }
+ VMOp_Type type() const override { return VMOp_G1StopMarking; }
+
+ bool doit_prologue() override;
+ void doit() override;
+
+ bool is_gc_operation() const override { return true; }
+ };
+
#endif // SHARE_GC_G1_G1VMOPERATIONS_HPP
< prev index next >