On Fri, 10 Jan 2025 19:15:29 GMT, Robert Toyonaga <d...@openjdk.org> wrote:

> For JavaThreads:
In attach_current_thread, create_stack_guard_pages() and 
register_thread_stack_with_NMT() are called before Threads::add.

You can't attach to a VM until a certain point deep into initialization has 
been reached.

> For NonJavaThreads:
In Thread::call_run(), register_thread_stack_with_NMT() is called before 
NonJavaThread::pre_run() which later calls NonJavaThread::add_to_the_list().

Yes it is a problem that the created thread adds itself to the list.

So a simple solution would be to just use `Thread::number_of_threads() > 0` as 
the guard. That means we will skip the lock whilst it is unsafe to try and use 
it, then start using it once the main thread has "attached" even though it is 
not technically needed until there is another thread created.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/22745#issuecomment-2586086059

Reply via email to