8216072: Remove TaskTerminator's assignment operator

Reviewed-by: tschatzl, rkennke, kbarrett
This commit is contained in:
Zhengyu Gu 2019-01-31 10:18:41 -05:00
parent a62c3f5015
commit 85e19d8beb
3 changed files with 4 additions and 30 deletions

@ -588,7 +588,7 @@ void G1ConcurrentMark::set_concurrency(uint active_tasks) {
_num_active_tasks = active_tasks;
// Need to update the three data structures below according to the
// number of active threads for this phase.
_terminator = TaskTerminator((int) active_tasks, _task_queues);
_terminator.terminator()->reset_for_reuse((int) active_tasks);
_first_overflow_barrier_sync.set_n_workers((int) active_tasks);
_second_overflow_barrier_sync.set_n_workers((int) active_tasks);
}

@ -281,13 +281,3 @@ TaskTerminator::~TaskTerminator() {
}
}
// Move assignment
TaskTerminator& TaskTerminator::operator=(const TaskTerminator& o) {
if (_terminator != NULL) {
delete _terminator;
}
_terminator = o.terminator();
const_cast<TaskTerminator&>(o)._terminator = NULL;
return *this;
}

@ -510,37 +510,21 @@ public:
#endif
};
#ifdef _MSC_VER
#pragma warning(push)
// warning C4521: multiple copy constructors specified
#pragma warning(disable:4521)
// warning C4522: multiple assignment operators specified
#pragma warning(disable:4522)
#endif
class TaskTerminator : public StackObj {
private:
ParallelTaskTerminator* _terminator;
// Disable following copy constructors and assignment operator
TaskTerminator(TaskTerminator& o) { }
TaskTerminator(const TaskTerminator& o) { }
TaskTerminator& operator=(TaskTerminator& o) { return *this; }
// Noncopyable.
TaskTerminator(const TaskTerminator&);
TaskTerminator& operator=(const TaskTerminator&);
public:
TaskTerminator(uint n_threads, TaskQueueSetSuper* queue_set);
~TaskTerminator();
// Move assignment
TaskTerminator& operator=(const TaskTerminator& o);
ParallelTaskTerminator* terminator() const {
return _terminator;
}
};
#ifdef _MSC_VER
#pragma warning(pop)
#endif
typedef GenericTaskQueue<oop, mtGC> OopTaskQueue;
typedef GenericTaskQueueSet<OopTaskQueue, mtGC> OopTaskQueueSet;