Mercurial > hg > truffle
diff src/share/vm/memory/metaspace.cpp @ 6753:8da5e203b993
7197557: NPG: nsk/sysdict/vm/stress/chain/chain004 hangs intermittently
Reviewed-by: johnc, ysr
author | jmasa |
---|---|
date | Tue, 18 Sep 2012 14:15:06 -0700 |
parents | 11fb740ce98f |
children | 5baec2e69518 |
line wrap: on
line diff
--- a/src/share/vm/memory/metaspace.cpp Mon Sep 17 10:33:13 2012 +0200 +++ b/src/share/vm/memory/metaspace.cpp Tue Sep 18 14:15:06 2012 -0700 @@ -2843,6 +2843,21 @@ } } +MetaWord* Metaspace::expand_and_allocate(size_t word_size, MetadataType mdtype) { + MetaWord* result; + MetaspaceGC::set_expand_after_GC(true); + size_t before_inc = MetaspaceGC::capacity_until_GC(); + size_t delta_words = MetaspaceGC::delta_capacity_until_GC(word_size); + MetaspaceGC::inc_capacity_until_GC(delta_words); + if (PrintGCDetails && Verbose) { + gclog_or_tty->print_cr("Increase capacity to GC from " SIZE_FORMAT + " to " SIZE_FORMAT, before_inc, MetaspaceGC::capacity_until_GC()); + } + result = allocate(word_size, mdtype); + + return result; +} + // Space allocated in the Metaspace. This may // be across several metadata virtual spaces. char* Metaspace::bottom() const {