Reviewers: Vitaly Repeshko,
Description:
In ProfilerSignalHandler ensure that thread we are trying to sample locked
the
isolate.
BUG=http://crbug.com/77725
Please review this at http://codereview.chromium.org/6837028/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files:
M src/platform-freebsd.cc
M src/platform-linux.cc
Index: src/platform-freebsd.cc
diff --git a/src/platform-freebsd.cc b/src/platform-freebsd.cc
index
ca4e54f6fca5501951d949f9019f2f275cfdf6ba..8b83f2bd6cb1c85a34e4a3476bbe8366194b6f94
100644
--- a/src/platform-freebsd.cc
+++ b/src/platform-freebsd.cc
@@ -642,6 +642,11 @@ static void ProfilerSignalHandler(int signal,
siginfo_t* info, void* context) {
// We require a fully initialized and entered isolate.
return;
}
+ if (v8::Locker::IsActive() &&
+ !isolate->thread_manager()->IsLockedByCurrentThread()) {
+ return;
+ }
+
Sampler* sampler = isolate->logger()->sampler();
if (sampler == NULL || !sampler->IsActive()) return;
Index: src/platform-linux.cc
diff --git a/src/platform-linux.cc b/src/platform-linux.cc
index
e2ab9d81b40c78064733a7ae7fe6a5f9c24ada87..1ecd8fc81b08b05a7dad8f2495255ec37db95091
100644
--- a/src/platform-linux.cc
+++ b/src/platform-linux.cc
@@ -853,6 +853,11 @@ static void ProfilerSignalHandler(int signal,
siginfo_t* info, void* context) {
// We require a fully initialized and entered isolate.
return;
}
+ if (v8::Locker::IsActive() &&
+ !isolate->thread_manager()->IsLockedByCurrentThread()) {
+ return;
+ }
+
Sampler* sampler = isolate->logger()->sampler();
if (sampler == NULL || !sampler->IsActive()) return;
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev