RFR: 8215097: Do not create NonJavaThreads before BarrierSet

Kim Barrett 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 mailing list