On Fri, 12 Feb 2021 22:02:18 GMT, Coleen Phillimore <[email protected]> wrote:
>> A minor fix to add a new function: >> >> bool Thread::is_JavaThread_protected(const JavaThread* p) >> >> that returns true when the target JavaThread* is protected and false >> otherwise. Update JavaThread::get_thread_name() to create a >> ThreadsListHandle and use the new is_JavaThread_protected(). Also >> update JvmtiTrace::safe_get_thread_name() to use the new >> is_JavaThread_protected(). >> >> This fix is tested via a Mach5 Tier[1-8] run. > > src/hotspot/share/runtime/thread.hpp line 1692: > >> 1690: const char* get_thread_name() const; >> 1691: protected: >> 1692: friend class JvmtiTrace; // so get_thread_name_string() can be >> called > > I was trying to think of a way to not have JvmtiTrace not be a friend of > JavaThread for this, maybe by adding a default value parameter to return > "<NOT FILLED IN\>" rather than Thread::name. > is_JavaThread_protected only seems to be called by JvmtiTrace also, so should > be private (with the friend, which also makes the friend unfortunate). JavaThread::get_thread_name() also calls is_JavaThread_protected(). The "friend" is so that JvmtiTrace can call get_thread_name_string() and we can get rid of the JvmtiTrace version of the logic. I kept the "<NOT FILLED IN>" rather than figure out a way to call Thread::name() so we don't introduce the possibility of a compatibility issue for any code that might depend on that hand rolled string value... ------------- PR: https://git.openjdk.java.net/jdk/pull/2535
