< prev index next >
src/hotspot/share/gc/shenandoah/shenandoahPacer.hpp
Print this page
rev 59691 : 8247310: Shenandoah: pacer should not affect interrupt status
Reviewed-by: XXX
*** 43,52 ****
--- 43,53 ----
class ShenandoahPacer : public CHeapObj<mtGC> {
private:
ShenandoahHeap* _heap;
BinaryMagnitudeSeq _delays;
TruncatedSeq* _progress_history;
+ Monitor* _wait_monitor;
// Set once per phase
volatile intptr_t _epoch;
volatile double _tax_rate;
*** 62,71 ****
--- 63,73 ----
public:
ShenandoahPacer(ShenandoahHeap* heap) :
_heap(heap),
_progress_history(new TruncatedSeq(5)),
+ _wait_monitor(new Monitor(Mutex::leaf, "_wait_monitor", true, Monitor::_safepoint_check_always)),
_epoch(0),
_tax_rate(1),
_budget(0),
_progress(PACING_PROGRESS_UNINIT) {}
*** 96,103 ****
--- 98,108 ----
inline void report_progress_internal(size_t words);
void restart_with(size_t non_taxable_bytes, double tax_rate);
size_t update_and_get_progress_history();
+
+ void wait(long time_ms);
+ void notify_waiters();
};
#endif // SHARE_GC_SHENANDOAH_SHENANDOAHPACER_HPP
< prev index next >