Thank you Ben and Peter!

On Tuesday, April 16, 2019 at 8:49:33 AM UTC-4, Peter Marshall wrote:
>
> Yeah I don't think this is designed to be thread-safe. For example, we end 
> up calling ProfilerEventsProcessor::AddCurrentStack()
> which creates a StackFrameIterator from the isolate. To do this it 
> calls isolate->thread_local_top(). The main thread will still be modifying
> ThreadLocalTop while the 2nd thread tries to read from it e.g. via 
> Isolate::c_entry_fp(top) in StackFrameIterator::Reset().
>
>
> On Tuesday, April 16, 2019 at 9:24:30 AM UTC+2, Ben Noordhuis wrote:
>>
>> On Mon, Apr 15, 2019 at 4:33 PM Bit Cortex <bitc...@gmail.com> wrote: 
>> > That is, can this method be called from another thread while V8 is 
>> running script code? 
>>
>> I think the answer is "probably not" but it needs some elaboration. 
>>
>> Yes, CpuProfiler::CollectSample(Isolate*) acquires a mutex before 
>> collecting the sample. So far so good. 
>>
>> However, there will be data races when the V8 thread calls other 
>> CpuProfiler methods concurrently (or possibly _any_ V8 methods) 
>> because those methods are _not_ synchronized. Since JS code sometimes 
>> calls into the V8 runtime, I wouldn't want to vouch whether that's 
>> going to work correctly. 
>>
>> V8's test suite never calls it from a different thread. That's perhaps 
>> a good indicator that it's not supposed to be used that way. 
>>
>

-- 
-- 
v8-users mailing list
v8-users@googlegroups.com
http://groups.google.com/group/v8-users
--- 
You received this message because you are subscribed to the Google Groups 
"v8-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to v8-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to