8080869: FlexibleWorkGang initializes _active_workers to more than _total_workers
Reviewed-by: kbarrett, jmasa
--- a/hotspot/src/share/vm/gc/shared/workgroup.hpp Thu May 21 09:35:59 2015 +0200
+++ b/hotspot/src/share/vm/gc/shared/workgroup.hpp Thu May 21 14:10:15 2015 +0200
@@ -315,15 +315,13 @@
uint _active_workers;
public:
// Constructor and destructor.
- // Initialize active_workers to a minimum value. Setting it to
- // the parameter "workers" will initialize it to a maximum
- // value which is not desirable.
FlexibleWorkGang(const char* name, uint workers,
bool are_GC_task_threads,
bool are_ConcurrentGC_threads) :
WorkGang(name, workers, are_GC_task_threads, are_ConcurrentGC_threads),
- _active_workers(UseDynamicNumberOfGCThreads ? 1U : ParallelGCThreads) {}
- // Accessors for fields
+ _active_workers(UseDynamicNumberOfGCThreads ? 1U : workers) {}
+
+ // Accessors for fields.
virtual uint active_workers() const { return _active_workers; }
void set_active_workers(uint v) {
assert(v <= _total_workers,