< prev index next > src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.hpp
Print this page
*/
#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHCONCURRENTMARK_HPP
#define SHARE_GC_SHENANDOAH_SHENANDOAHCONCURRENTMARK_HPP
#include "gc/shenandoah/shenandoahMark.hpp"
class ShenandoahConcurrentMarkingTask;
class ShenandoahFinalMarkingTask;
class ShenandoahConcurrentMark: public ShenandoahMark {
! friend class ShenandoahConcurrentMarkingTask;
! friend class ShenandoahFinalMarkingTask;
public:
! ShenandoahConcurrentMark();
// Concurrent mark roots
void mark_concurrent_roots();
// Concurrent mark
void concurrent_mark();
// Finish mark at a safepoint
void finish_mark();
- static void cancel();
-
private:
void finish_mark_work();
};
#endif // SHARE_GC_SHENANDOAH_SHENANDOAHCONCURRENTMARK_HPP
*/
#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHCONCURRENTMARK_HPP
#define SHARE_GC_SHENANDOAH_SHENANDOAHCONCURRENTMARK_HPP
+ #include "gc/shenandoah/shenandoahGenerationType.hpp"
#include "gc/shenandoah/shenandoahMark.hpp"
+ template <ShenandoahGenerationType GENERATION>
class ShenandoahConcurrentMarkingTask;
+ template <ShenandoahGenerationType GENERATION>
class ShenandoahFinalMarkingTask;
+ class ShenandoahGeneration;
class ShenandoahConcurrentMark: public ShenandoahMark {
! template <ShenandoahGenerationType GENERATION> friend class ShenandoahConcurrentMarkingTask;
! template <ShenandoahGenerationType GENERATION> friend class ShenandoahFinalMarkingTask;
public:
! ShenandoahConcurrentMark(ShenandoahGeneration* generation);
+
// Concurrent mark roots
void mark_concurrent_roots();
+
// Concurrent mark
void concurrent_mark();
+
// Finish mark at a safepoint
void finish_mark();
private:
void finish_mark_work();
};
#endif // SHARE_GC_SHENANDOAH_SHENANDOAHCONCURRENTMARK_HPP
< prev index next >