RFR: 8215097: Do not create NonJavaThreads before BarrierSet
kim.barrett at oracle.com
Tue Dec 11 00:21:02 UTC 2018
> On Dec 10, 2018, at 6:54 PM, David Holmes <david.holmes at oracle.com> wrote:
> On 11/12/2018 8:59 am, Kim Barrett wrote:
>> Looking at yours, I kind of want the remaining bootstrapping in mine to use your change to set_as_starting_thread,
>> (e.g. use your new _starting_thread to recognize it), except I think that function is called too late to use for that purpose.
> Within the Thread::Thread constructor:
> _starting_thread == NULL && Thread::current_or_null() == NULL => Creation of the main thread itself
> _starting_thread == NULL && Thread::current_or_null() != NULL => The main thread has created other threads before completing it's own initialization - this should be an error!
> _starting_thread != NULL && Thread::current() == _starting_thread => Safe initialisation by the main thread
> else => error
> Once yours is pushed I'll see how to integrate things. I have to admit I didn't think of something as simple as adding a static flag :)
I was thinking about stealing your set_as_starting_thread change and adding it to mine for use in
my new bootstrapping code. But I think I will leave something like that to you, if it still seems appropriate.
More information about the hotspot-dev