8243238: Shenandoah: explicit GC request should wait for a complete GC cycle

Reviewed-by: rkennke
This commit is contained in:
Aleksey Shipilev 2020-04-21 11:20:54 +02:00
parent 6a905b6546
commit 74b3243f8c
2 changed files with 35 additions and 3 deletions

View file

@ -88,6 +88,8 @@ private:
shenandoah_padding(0);
volatile size_t _allocs_seen;
shenandoah_padding(1);
volatile size_t _gc_id;
shenandoah_padding(2);
bool check_cancellation_or_degen(ShenandoahHeap::ShenandoahDegenPoint point);
void service_concurrent_normal_cycle(GCCause::Cause cause);
@ -99,6 +101,10 @@ private:
void notify_alloc_failure_waiters();
bool is_alloc_failure_gc();
void reset_gc_id();
void update_gc_id();
size_t get_gc_id();
void notify_gc_waiters();
// Handle GC request.