8264624: change the guarantee() calls added by JDK-8264123 to assert() calls

Reviewed-by: pchilanomate, coleenp
This commit is contained in:
Daniel D. Daugherty 2021-05-28 16:24:04 +00:00
parent 0c0ff7fb0c
commit 591b0c3a46
2 changed files with 17 additions and 13 deletions

View File

@ -280,7 +280,7 @@ class ScanHazardPtrGatherProtectedThreadsClosure : public ThreadClosure {
if (thread->cmpxchg_threads_hazard_ptr(NULL, current_list) == current_list) return; if (thread->cmpxchg_threads_hazard_ptr(NULL, current_list) == current_list) return;
} }
guarantee(ThreadsList::is_valid(current_list), "current_list=" assert(ThreadsList::is_valid(current_list), "current_list="
INTPTR_FORMAT " is not valid!", p2i(current_list)); INTPTR_FORMAT " is not valid!", p2i(current_list));
// The current JavaThread has a hazard ptr (ThreadsList reference) // The current JavaThread has a hazard ptr (ThreadsList reference)
@ -311,13 +311,15 @@ class ScanHazardPtrGatherThreadsListClosure : public ThreadClosure {
if (thread == NULL) return; if (thread == NULL) return;
ThreadsList *hazard_ptr = thread->get_threads_hazard_ptr(); ThreadsList *hazard_ptr = thread->get_threads_hazard_ptr();
if (hazard_ptr == NULL) return; if (hazard_ptr == NULL) return;
#ifdef ASSERT
if (!Thread::is_hazard_ptr_tagged(hazard_ptr)) { if (!Thread::is_hazard_ptr_tagged(hazard_ptr)) {
// We only validate hazard_ptrs that are not tagged since a tagged // We only validate hazard_ptrs that are not tagged since a tagged
// hazard ptr can be deleted at any time. // hazard ptr can be deleted at any time.
guarantee(ThreadsList::is_valid(hazard_ptr), "hazard_ptr=" INTPTR_FORMAT assert(ThreadsList::is_valid(hazard_ptr), "hazard_ptr=" INTPTR_FORMAT
" for thread=" INTPTR_FORMAT " is not valid!", p2i(hazard_ptr), " for thread=" INTPTR_FORMAT " is not valid!", p2i(hazard_ptr),
p2i(thread)); p2i(thread));
} }
#endif
// In this closure we always ignore the tag that might mark this // In this closure we always ignore the tag that might mark this
// hazard ptr as not yet verified. If we happen to catch an // hazard ptr as not yet verified. If we happen to catch an
// unverified hazard ptr that is subsequently discarded (not // unverified hazard ptr that is subsequently discarded (not
@ -380,7 +382,7 @@ class ValidateHazardPtrsClosure : public ThreadClosure {
// If the hazard ptr is unverified, then ignore it since it could // If the hazard ptr is unverified, then ignore it since it could
// be deleted at any time now. // be deleted at any time now.
if (Thread::is_hazard_ptr_tagged(hazard_ptr)) return; if (Thread::is_hazard_ptr_tagged(hazard_ptr)) return;
guarantee(ThreadsList::is_valid(hazard_ptr), "hazard_ptr=" INTPTR_FORMAT assert(ThreadsList::is_valid(hazard_ptr), "hazard_ptr=" INTPTR_FORMAT
" for thread=" INTPTR_FORMAT " is not valid!", p2i(hazard_ptr), " for thread=" INTPTR_FORMAT " is not valid!", p2i(hazard_ptr),
p2i(thread)); p2i(thread));
} }
@ -557,7 +559,7 @@ void SafeThreadsListPtr::release_stable_list() {
// An exiting thread might be waiting in smr_delete(); we need to // An exiting thread might be waiting in smr_delete(); we need to
// check with delete_lock to be sure. // check with delete_lock to be sure.
ThreadsSMRSupport::release_stable_list_wake_up(_has_ref_count); ThreadsSMRSupport::release_stable_list_wake_up(_has_ref_count);
guarantee(_previous == NULL || ThreadsList::is_valid(_previous->_list), assert(_previous == NULL || ThreadsList::is_valid(_previous->_list),
"_previous->_list=" INTPTR_FORMAT "_previous->_list=" INTPTR_FORMAT
" is not valid after calling release_stable_list_wake_up!", " is not valid after calling release_stable_list_wake_up!",
p2i(_previous->_list)); p2i(_previous->_list));

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2017, 2020, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2017, 2021, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -206,7 +206,9 @@ public:
JavaThread* find_JavaThread_from_java_tid(jlong java_tid) const; JavaThread* find_JavaThread_from_java_tid(jlong java_tid) const;
bool includes(const JavaThread * const p) const; bool includes(const JavaThread * const p) const;
#ifdef ASSERT
static bool is_valid(ThreadsList* list) { return list->_magic == THREADS_LIST_MAGIC; } static bool is_valid(ThreadsList* list) { return list->_magic == THREADS_LIST_MAGIC; }
#endif
}; };
// An abstract safe ptr to a ThreadsList comprising either a stable hazard ptr // An abstract safe ptr to a ThreadsList comprising either a stable hazard ptr