mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-17 09:34:38 +02:00
8156500: Move Reference pending list into VM to prevent deadlocks
Move reference pending list and locking into VM Co-authored-by: Per Liden <per.liden@oracle.com> Reviewed-by: coleenp, dholmes, dcubed, mchung, plevart
This commit is contained in:
parent
4f55b6c7e0
commit
66706edf15
29 changed files with 133 additions and 576 deletions
|
@ -35,7 +35,6 @@
|
|||
#include "compiler/compileTask.hpp"
|
||||
#include "gc/shared/gcId.hpp"
|
||||
#include "gc/shared/gcLocker.inline.hpp"
|
||||
#include "gc/shared/referencePendingListLocker.hpp"
|
||||
#include "gc/shared/workgroup.hpp"
|
||||
#include "interpreter/interpreter.hpp"
|
||||
#include "interpreter/linkResolver.hpp"
|
||||
|
@ -3718,14 +3717,6 @@ jint Threads::create_vm(JavaVMInitArgs* args, bool* canTryAgain) {
|
|||
Management::record_vm_init_completed();
|
||||
#endif // INCLUDE_MANAGEMENT
|
||||
|
||||
// Note that we do not use CHECK_0 here since we are inside an EXCEPTION_MARK and
|
||||
// set_init_completed has just been called, causing exceptions not to be shortcut
|
||||
// anymore. We call vm_exit_during_initialization directly instead.
|
||||
|
||||
// Initialize reference pending list locker
|
||||
bool needs_locker_thread = Universe::heap()->needs_reference_pending_list_locker_thread();
|
||||
ReferencePendingListLocker::initialize(needs_locker_thread, CHECK_JNI_ERR);
|
||||
|
||||
// Signal Dispatcher needs to be started before VMInit event is posted
|
||||
os::signal_init();
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue