Chromium Code Reviews| Index: runtime/vm/compiler.h |
| diff --git a/runtime/vm/compiler.h b/runtime/vm/compiler.h |
| index 9dc11b810541b2fa2ad60138e3752967a475021e..84a618362efae05ec30992ede07100130214388a 100644 |
| --- a/runtime/vm/compiler.h |
| +++ b/runtime/vm/compiler.h |
| @@ -8,6 +8,7 @@ |
| #include "vm/allocation.h" |
| #include "vm/growable_array.h" |
| #include "vm/runtime_entry.h" |
| +#include "vm/thread_pool.h" |
| namespace dart { |
| @@ -99,6 +100,33 @@ class Compiler : public AllStatic { |
| static bool allow_recompilation_; |
| }; |
| + |
| +// Class to run optimizing compilation in a background thread. |
|
koda
2015/10/05 18:13:00
State that there is (at most) one per isolate.
srdjan
2015/10/05 19:16:47
Done.
|
| +class BackgroundCompiler : public ThreadPool::Task { |
| + public: |
| + static void EnsureInit(Isolate* isolate); |
| + |
| + static void Stop(BackgroundCompiler* task); |
| + |
| + void CompileOptimized(const Function& function); |
| + |
| + private: |
| + explicit BackgroundCompiler(Isolate* isolate); |
| + |
| + virtual void Run(); |
| + |
| + void Add(const Function& f) const; |
| + RawFunction* RemoveOrNull() const; |
| + |
| + Isolate* isolate_; |
| + bool running_; |
| + bool* done_; |
| + Monitor* monitor_; |
| + Monitor* done_monitor_; |
| + |
| + DISALLOW_IMPLICIT_CONSTRUCTORS(BackgroundCompiler); |
| +}; |
| + |
| } // namespace dart |
| #endif // VM_COMPILER_H_ |