mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 14:54:52 +02:00
8215220: Simplify Shenandoah task termination in aborted paths
Reviewed-by: shade
This commit is contained in:
parent
e7722158fd
commit
a85ad0aa18
4 changed files with 10 additions and 47 deletions
|
@ -49,28 +49,8 @@ bool ShenandoahObjToScanQueueSet::is_empty() {
|
|||
return true;
|
||||
}
|
||||
|
||||
class ShenandoahOWSTTerminator: public OWSTTaskTerminator {
|
||||
public:
|
||||
ShenandoahOWSTTerminator(uint n_threads, TaskQueueSetSuper* queue_set) :
|
||||
OWSTTaskTerminator(n_threads, queue_set){ }
|
||||
|
||||
protected:
|
||||
bool exit_termination(size_t tasks, TerminatorTerminator* terminator);
|
||||
};
|
||||
|
||||
bool ShenandoahOWSTTerminator::exit_termination(size_t tasks, TerminatorTerminator* terminator) {
|
||||
ShenandoahTerminatorTerminator* t = (ShenandoahTerminatorTerminator*)terminator;
|
||||
bool force = (t != NULL) && t->should_force_termination();
|
||||
if (force) {
|
||||
// Force termination : continue termination, even there are remaining tasks.
|
||||
return false;
|
||||
} else {
|
||||
return OWSTTaskTerminator::exit_termination(tasks, terminator);
|
||||
}
|
||||
}
|
||||
|
||||
ShenandoahTaskTerminator::ShenandoahTaskTerminator(uint n_threads, TaskQueueSetSuper* queue_set) :
|
||||
_terminator(new ShenandoahOWSTTerminator(n_threads, queue_set)) { }
|
||||
_terminator(new OWSTTaskTerminator(n_threads, queue_set)) { }
|
||||
|
||||
ShenandoahTaskTerminator::~ShenandoahTaskTerminator() {
|
||||
assert(_terminator != NULL, "Invariant");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue