openjdk-1.8.0/fix_run_SPECjvm2008_failed_on_32_bit_system.patch

31 lines
1.4 KiB
Diff
Executable File

diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp
index cf2812597..a8a87cc1b 100644
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp
@@ -60,12 +60,6 @@ jint ParallelScavengeHeap::initialize() {
_collector_policy->initialize_all();
const size_t heap_size = _collector_policy->max_heap_byte_size();
- _workers = new FlexibleWorkGang("GC Thread",ParallelGCThreads, true, false);
- if (_workers == NULL) {
- vm_exit_during_initialization("Failed necessary allocation.");
- } else {
- _workers->initialize_workers();
- }
ReservedSpace heap_rs = Universe::reserve_heap(heap_size, _collector_policy->heap_alignment());
MemTracker::record_virtual_memory_type((address)heap_rs.base(), mtJavaHeap);
@@ -130,6 +124,12 @@ jint ParallelScavengeHeap::initialize() {
// Set up the GCTaskManager
_gc_task_manager = GCTaskManager::create(ParallelGCThreads);
+ _workers = new FlexibleWorkGang("GC Thread",ParallelGCThreads, true, false);
+ if (_workers == NULL) {
+ vm_exit_during_initialization("Failed necessary allocation.");
+ } else {
+ _workers->initialize_workers();
+ }
if (UseParallelOldGC && !PSParallelCompact::initialize()) {
return JNI_ENOMEM;