28 #include "gc/shenandoah/shenandoahHeap.hpp"
29 #include "runtime/mutex.hpp"
30 #include "runtime/thread.hpp"
31
32 class ShenandoahSATBMarkQueue: public SATBMarkQueue {
33 public:
34 ShenandoahSATBMarkQueue(SATBMarkQueueSet* qset) : SATBMarkQueue(qset, /* permanent = */ false) {}
35 virtual bool should_enqueue_buffer();
36 };
37
38 class ShenandoahSATBMarkQueueSet : public SATBMarkQueueSet {
39 private:
40 ShenandoahHeap* _heap;
41 BufferNode::Allocator _satb_mark_queue_buffer_allocator;
42 public:
43 ShenandoahSATBMarkQueueSet();
44
45 void initialize(ShenandoahHeap* const heap,
46 Monitor* cbl_mon,
47 int process_completed_threshold,
48 uint buffer_enqueue_threshold_percentage,
49 Mutex* lock);
50
51 virtual SATBMarkQueue& satb_queue_for_thread(JavaThread* const t) const;
52 virtual void filter(SATBMarkQueue* queue);
53 };
54
55 #endif // SHARE_GC_SHENANDOAH_SHENANDOAHSATBMARKQUEUESET_HPP
|
28 #include "gc/shenandoah/shenandoahHeap.hpp"
29 #include "runtime/mutex.hpp"
30 #include "runtime/thread.hpp"
31
32 class ShenandoahSATBMarkQueue: public SATBMarkQueue {
33 public:
34 ShenandoahSATBMarkQueue(SATBMarkQueueSet* qset) : SATBMarkQueue(qset, /* permanent = */ false) {}
35 virtual bool should_enqueue_buffer();
36 };
37
38 class ShenandoahSATBMarkQueueSet : public SATBMarkQueueSet {
39 private:
40 ShenandoahHeap* _heap;
41 BufferNode::Allocator _satb_mark_queue_buffer_allocator;
42 public:
43 ShenandoahSATBMarkQueueSet();
44
45 void initialize(ShenandoahHeap* const heap,
46 Monitor* cbl_mon,
47 int process_completed_threshold,
48 uint buffer_enqueue_threshold_percentage);
49
50 virtual SATBMarkQueue& satb_queue_for_thread(Thread* const t) const;
51 virtual void filter(SATBMarkQueue* queue);
52 };
53
54 #endif // SHARE_GC_SHENANDOAH_SHENANDOAHSATBMARKQUEUESET_HPP
|