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