Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(702)

Unified Diff: tools/gn/scheduler.cc

Issue 56433003: GN threading refactor (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tools/gn/scheduler.h ('k') | tools/gn/scope.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/gn/scheduler.cc
diff --git a/tools/gn/scheduler.cc b/tools/gn/scheduler.cc
index 72c310bb071d1072698e3bdee6cf18b56c793965..254de0d5a097d6a4b5e24e8b7898de09cae33ce8 100644
--- a/tools/gn/scheduler.cc
+++ b/tools/gn/scheduler.cc
@@ -7,7 +7,6 @@
#include "base/bind.h"
#include "base/command_line.h"
#include "base/strings/string_number_conversions.h"
-#include "tools/gn/ninja_target_writer.h"
#include "tools/gn/standard_out.h"
Scheduler* g_scheduler = NULL;
@@ -31,17 +30,22 @@ Scheduler::Scheduler()
input_file_manager_(new InputFileManager),
verbose_logging_(false),
work_count_(0),
- is_failed_(false) {
+ is_failed_(false),
+ has_been_shutdown_(false) {
g_scheduler = this;
}
Scheduler::~Scheduler() {
+ if (!has_been_shutdown_)
+ pool_->Shutdown();
g_scheduler = NULL;
}
bool Scheduler::Run() {
runner_.Run();
+ base::AutoLock lock(lock_);
pool_->Shutdown();
+ has_been_shutdown_ = true;
return !is_failed();
}
@@ -86,13 +90,6 @@ void Scheduler::ScheduleWork(const base::Closure& work) {
base::SequencedWorkerPool::BLOCK_SHUTDOWN);
}
-void Scheduler::ScheduleTargetFileWrite(const Target* target) {
- pool_->PostWorkerTaskWithShutdownBehavior(
- FROM_HERE, base::Bind(&Scheduler::DoTargetFileWrite,
- base::Unretained(this), target),
- base::SequencedWorkerPool::BLOCK_SHUTDOWN);
-}
-
void Scheduler::AddGenDependency(const base::FilePath& file) {
base::AutoLock lock(lock_);
gen_dependencies_.push_back(file);
@@ -130,10 +127,6 @@ void Scheduler::FailWithErrorOnMainThread(const Err& err) {
runner_.Quit();
}
-void Scheduler::DoTargetFileWrite(const Target* target) {
- NinjaTargetWriter::RunAndWriteFile(target);
-}
-
void Scheduler::DoWork(const base::Closure& closure) {
closure.Run();
DecrementWorkCount();
« no previous file with comments | « tools/gn/scheduler.h ('k') | tools/gn/scope.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698