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

Side by Side Diff: tools/gn/scheduler.h

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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « tools/gn/ninja_writer.cc ('k') | tools/gn/scheduler.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef TOOLS_GN_SCHEDULER_H_ 5 #ifndef TOOLS_GN_SCHEDULER_H_
6 #define TOOLS_GN_SCHEDULER_H_ 6 #define TOOLS_GN_SCHEDULER_H_
7 7
8 #include "base/atomic_ref_count.h" 8 #include "base/atomic_ref_count.h"
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/files/file_path.h" 10 #include "base/files/file_path.h"
(...skipping 22 matching lines...) Expand all
33 void set_verbose_logging(bool v) { verbose_logging_ = v; } 33 void set_verbose_logging(bool v) { verbose_logging_ = v; }
34 34
35 // TODO(brettw) data race on this access (benign?). 35 // TODO(brettw) data race on this access (benign?).
36 bool is_failed() const { return is_failed_; } 36 bool is_failed() const { return is_failed_; }
37 37
38 void Log(const std::string& verb, const std::string& msg); 38 void Log(const std::string& verb, const std::string& msg);
39 void FailWithError(const Err& err); 39 void FailWithError(const Err& err);
40 40
41 void ScheduleWork(const base::Closure& work); 41 void ScheduleWork(const base::Closure& work);
42 42
43 void ScheduleTargetFileWrite(const Target* target); 43 void Shutdown();
44 44
45 // Declares that the given file was read and affected the build output. 45 // Declares that the given file was read and affected the build output.
46 // 46 //
47 // TODO(brettw) this is global rather than per-BuildSettings. If we 47 // TODO(brettw) this is global rather than per-BuildSettings. If we
48 // start using >1 build settings, then we probably want this to take a 48 // start using >1 build settings, then we probably want this to take a
49 // BuildSettings object so we know the depdency on a per-build basis. 49 // BuildSettings object so we know the depdency on a per-build basis.
50 void AddGenDependency(const base::FilePath& file); 50 void AddGenDependency(const base::FilePath& file);
51 std::vector<base::FilePath> GetGenDependencies() const; 51 std::vector<base::FilePath> GetGenDependencies() const;
52 52
53 // We maintain a count of the things we need to do that works like a 53 // We maintain a count of the things we need to do that works like a
(...skipping 18 matching lines...) Expand all
72 72
73 base::RunLoop runner_; 73 base::RunLoop runner_;
74 74
75 bool verbose_logging_; 75 bool verbose_logging_;
76 76
77 base::AtomicRefCount work_count_; 77 base::AtomicRefCount work_count_;
78 78
79 mutable base::Lock lock_; 79 mutable base::Lock lock_;
80 bool is_failed_; 80 bool is_failed_;
81 81
82 // Used to track whether the worker pool has been shutdown. This is necessary
83 // to clean up after tests that make a scheduler but don't run the message
84 // loop.
85 bool has_been_shutdown_;
86
82 // Additional input dependencies. Protected by the lock. 87 // Additional input dependencies. Protected by the lock.
83 std::vector<base::FilePath> gen_dependencies_; 88 std::vector<base::FilePath> gen_dependencies_;
84 89
85 DISALLOW_COPY_AND_ASSIGN(Scheduler); 90 DISALLOW_COPY_AND_ASSIGN(Scheduler);
86 }; 91 };
87 92
88 extern Scheduler* g_scheduler; 93 extern Scheduler* g_scheduler;
89 94
90 #endif // TOOLS_GN_SCHEDULER_H_ 95 #endif // TOOLS_GN_SCHEDULER_H_
91 96
OLDNEW
« no previous file with comments | « tools/gn/ninja_writer.cc ('k') | tools/gn/scheduler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698