8247593: Shenandoah: should not block pacing reporters

Reviewed-by: rkennke
This commit is contained in:
Aleksey Shipilev 2020-06-17 09:43:16 +02:00
parent 6d2959b393
commit aeeaffa888
5 changed files with 41 additions and 15 deletions

View file

@ -52,6 +52,13 @@ public:
virtual void task();
};
// Periodic task to notify blocked paced waiters.
class ShenandoahPeriodicPacerNotify : public PeriodicTask {
public:
ShenandoahPeriodicPacerNotify() : PeriodicTask(PeriodicTask::min_interval) {}
virtual void task();
};
class ShenandoahControlThread: public ConcurrentGCThread {
friend class VMStructs;
@ -70,6 +77,7 @@ private:
Monitor _gc_waiters_lock;
ShenandoahPeriodicTask _periodic_task;
ShenandoahPeriodicSATBFlushTask _periodic_satb_flush_task;
ShenandoahPeriodicPacerNotify _periodic_pacer_notify_task;
public:
void run_service();