summaryrefslogtreecommitdiff
path: root/deps
diff options
context:
space:
mode:
authorMatt Loring <mattloring@google.com>2017-06-27 11:05:22 +0200
committerAnna Henningsen <anna@addaleax.net>2017-08-17 20:25:53 +0200
commit832a87f906f2dad032604af1420db7d245083f56 (patch)
treeffd398439ccc9b17368508dadcaf922b00311b6f /deps
parent4f21834962c22c2d70f57a57e160e2abda84aaed (diff)
downloadnode-new-832a87f906f2dad032604af1420db7d245083f56.tar.gz
deps: backport 5152d97 from upstream V8
Original commit message: Add API to create a platform with a tracing controller BUG=v8:6511 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Ie6b62df693d3b847837c071e1f985b7ce3b420c8 Reviewed-on: https://chromium-review.googlesource.com/548499 Reviewed-by: Fadi Meawad <fmeawad@chromium.org> Commit-Queue: Jochen Eisinger <jochen@chromium.org> Cr-Commit-Position: refs/heads/master@{#46227} PR-URL: https://github.com/nodejs/node/pull/14001 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Diffstat (limited to 'deps')
-rw-r--r--deps/v8/include/libplatform/libplatform.h5
-rw-r--r--deps/v8/src/libplatform/default-platform.cc16
-rw-r--r--deps/v8/src/libplatform/default-platform.h8
3 files changed, 13 insertions, 16 deletions
diff --git a/deps/v8/include/libplatform/libplatform.h b/deps/v8/include/libplatform/libplatform.h
index e945045629..39158e7bc8 100644
--- a/deps/v8/include/libplatform/libplatform.h
+++ b/deps/v8/include/libplatform/libplatform.h
@@ -30,12 +30,15 @@ enum class MessageLoopBehavior : bool {
* If |idle_task_support| is enabled then the platform will accept idle
* tasks (IdleTasksEnabled will return true) and will rely on the embedder
* calling v8::platform::RunIdleTasks to process the idle tasks.
+ * If |tracing_controller| is nullptr, the default platform will create a
+ * v8::platform::TracingController instance and use it.
*/
V8_PLATFORM_EXPORT v8::Platform* CreateDefaultPlatform(
int thread_pool_size = 0,
IdleTaskSupport idle_task_support = IdleTaskSupport::kDisabled,
InProcessStackDumping in_process_stack_dumping =
- InProcessStackDumping::kEnabled);
+ InProcessStackDumping::kEnabled,
+ v8::TracingController* tracing_controller = nullptr);
/**
* Pumps the message loop for the given isolate.
diff --git a/deps/v8/src/libplatform/default-platform.cc b/deps/v8/src/libplatform/default-platform.cc
index fce946ad6f..86fdabce4f 100644
--- a/deps/v8/src/libplatform/default-platform.cc
+++ b/deps/v8/src/libplatform/default-platform.cc
@@ -29,15 +29,18 @@ void PrintStackTrace() {
} // namespace
-v8::Platform* CreateDefaultPlatform(
- int thread_pool_size, IdleTaskSupport idle_task_support,
- InProcessStackDumping in_process_stack_dumping) {
+v8::Platform* CreateDefaultPlatform(int thread_pool_size,
+ IdleTaskSupport idle_task_support,
+ InProcessStackDumping in_process_stack_dumping,
+ v8::TracingController* tracing_controller) {
if (in_process_stack_dumping == InProcessStackDumping::kEnabled) {
v8::base::debug::EnableInProcessStackDumping();
}
DefaultPlatform* platform = new DefaultPlatform(idle_task_support);
platform->SetThreadPoolSize(thread_pool_size);
platform->EnsureInitialized();
+ if (tracing_controller != nullptr)
+ platform->SetTracingController(tracing_controller);
return platform;
}
@@ -73,11 +76,6 @@ DefaultPlatform::DefaultPlatform(IdleTaskSupport idle_task_support)
idle_task_support_(idle_task_support) {}
DefaultPlatform::~DefaultPlatform() {
- if (tracing_controller_) {
- tracing_controller_->StopTracing();
- tracing_controller_.reset();
- }
-
base::LockGuard<base::Mutex> guard(&lock_);
queue_.Terminate();
if (initialized_) {
@@ -316,7 +314,7 @@ const char* DefaultPlatform::GetCategoryGroupName(
}
void DefaultPlatform::SetTracingController(
- tracing::TracingController* tracing_controller) {
+ TracingController* tracing_controller) {
tracing_controller_.reset(tracing_controller);
}
diff --git a/deps/v8/src/libplatform/default-platform.h b/deps/v8/src/libplatform/default-platform.h
index 3d91433132..80ea4e85d4 100644
--- a/deps/v8/src/libplatform/default-platform.h
+++ b/deps/v8/src/libplatform/default-platform.h
@@ -27,10 +27,6 @@ class TaskQueue;
class Thread;
class WorkerThread;
-namespace tracing {
-class TracingController;
-}
-
class V8_PLATFORM_EXPORT DefaultPlatform : public NON_EXPORTED_BASE(Platform) {
public:
explicit DefaultPlatform(
@@ -72,7 +68,7 @@ class V8_PLATFORM_EXPORT DefaultPlatform : public NON_EXPORTED_BASE(Platform) {
unsigned int flags) override;
void UpdateTraceEventDuration(const uint8_t* category_enabled_flag,
const char* name, uint64_t handle) override;
- void SetTracingController(tracing::TracingController* tracing_controller);
+ void SetTracingController(TracingController* tracing_controller);
void AddTraceStateObserver(TraceStateObserver* observer) override;
void RemoveTraceStateObserver(TraceStateObserver* observer) override;
@@ -103,7 +99,7 @@ class V8_PLATFORM_EXPORT DefaultPlatform : public NON_EXPORTED_BASE(Platform) {
std::priority_queue<DelayedEntry, std::vector<DelayedEntry>,
std::greater<DelayedEntry> > >
main_thread_delayed_queue_;
- std::unique_ptr<tracing::TracingController> tracing_controller_;
+ std::unique_ptr<TracingController> tracing_controller_;
DISALLOW_COPY_AND_ASSIGN(DefaultPlatform);
};