Updates:
        Cc: mikhail.naganov

Comment #7 on issue 361 by mikhail.naganov: ThreadSanitizer reports dubious practices in V8
http://code.google.com/p/v8/issues/detail?id=361

It's not v8::internal::Profiler thread itself, it's a v8::internal::ProfilerSignalHandler that interrupted it. Yes, we read values in the signal handler w/o synchronization to avoid causing deadlocks, because a signal can
interrupt a thread that currently holds a lock.

Thanks to your report, I see a potential problem with this line:

    return current_state_ ? current_state_->state() : OTHER;

as current_state_ may turn to NULL after the check.

Also, potentially, Sampler::Stop() may be executed during signal handler running in another thread, causing a
crash when accessing active_sampler_.

Although this seems to be really unlikely to have such situations, I'll figure out how to mitigate them.

--
You received this message because you are listed in the owner
or CC fields of this issue, or because you starred this issue.
You may adjust your issue notification preferences at:
http://code.google.com/hosting/settings

--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to