RFR: 8241403: JavaThread::get_thread_name() should be ThreadSMR-aware
Coleen Phillimore
coleenp at openjdk.java.net
Fri Feb 12 23:44:44 UTC 2021
On Fri, 12 Feb 2021 22:14:35 GMT, Daniel D. Daugherty <dcubed at openjdk.org> wrote:
>> 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...
So Thread::is_JavaThread_protected() should be "protected" then, not public.
yes, I was suggesting adding a default last parameter like
JavaThread::get_thread_name(char* default = Thread::name());
and pass "<NOT_FILLED_IN\>" from JVMTI. Then JVMTI doesn't have to be a friend and have more visibility to the JavaThread class than it should have.
-------------
PR: https://git.openjdk.java.net/jdk/pull/2535
More information about the serviceability-dev
mailing list