提交 6e8e2003 编写于 作者: S stefank

7134655: Crash in reference processing when doing single-threaded remarking

Summary: Temporarily disabled multi-threaded reference discovery when entering a single-threaded remark phase.
Reviewed-by: brutisso, tonyp, jmasa, jcoomes
上级 b2b3a5ba
/*
* Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
......@@ -5594,6 +5594,7 @@ void CMSCollector::do_remark_parallel() {
GenCollectedHeap::StrongRootsScope srs(gch);
workers->run_task(&tsk);
} else {
ReferenceProcessorMTDiscoveryMutator mt(ref_processor(), false);
GenCollectedHeap::StrongRootsScope srs(gch);
tsk.work(0);
}
......@@ -5608,6 +5609,8 @@ void CMSCollector::do_remark_non_parallel() {
ResourceMark rm;
HandleMark hm;
GenCollectedHeap* gch = GenCollectedHeap::heap();
ReferenceProcessorMTDiscoveryMutator mt(ref_processor(), false);
MarkRefsIntoAndScanClosure
mrias_cl(_span, ref_processor(), &_markBitMap, &_modUnionTable,
&_markStack, &_revisitStack, this,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册