Chromium Code Reviews| Index: src/compiler-dispatcher/compiler-dispatcher-job.h |
| diff --git a/src/compiler-dispatcher/compiler-dispatcher-job.h b/src/compiler-dispatcher/compiler-dispatcher-job.h |
| index e0c339846144da7bd0ba7f625fec2bc1414d4743..c498e49a1589a4b2beebe2bfd88b9f19df645bf5 100644 |
| --- a/src/compiler-dispatcher/compiler-dispatcher-job.h |
| +++ b/src/compiler-dispatcher/compiler-dispatcher-job.h |
| @@ -7,6 +7,7 @@ |
| #include <memory> |
| +#include "src/base/atomic-utils.h" |
| #include "src/base/macros.h" |
| #include "src/handles.h" |
| @@ -17,6 +18,7 @@ class CompilationInfo; |
| class Isolate; |
| class JSFunction; |
| class ParseInfo; |
| +class Parser; |
| class UnicodeCache; |
| class Utf16CharacterStream; |
| class Zone; |
| @@ -24,28 +26,39 @@ class Zone; |
| enum class CompileJobStatus { |
| kInitial, |
| kReadyToParse, |
| + kParsed, |
| }; |
| class CompilerDispatcherJob { |
| public: |
| - CompilerDispatcherJob(Isolate* isolate, Handle<JSFunction> function); |
| + CompilerDispatcherJob(Isolate* isolate, Handle<JSFunction> function, |
| + size_t max_stack_size); |
| ~CompilerDispatcherJob(); |
| - CompileJobStatus status() const { return status_; } |
| + CompileJobStatus status() const { return status_.Value(); } |
| + bool can_parse_on_background_thread() const { |
| + return can_parse_on_background_thread_; |
| + } |
| // Transition from kInitial to kReadyToParse. |
| void PrepareToParseOnMainThread(); |
| + // Transition from kReadyToParse to kParsed. |
| + void Parse(); |
| + |
| private: |
| - CompileJobStatus status_ = CompileJobStatus::kInitial; |
| + base::AtomicValue<CompileJobStatus> status_ = |
| + base::AtomicValue<CompileJobStatus>(CompileJobStatus::kInitial); |
|
vogelheim
2016/07/29 10:19:56
Why initialize here, and not in constructor?
jochen (gone - plz use gerrit)
2016/07/29 10:27:45
so you see in the header that this is independend
|
| Isolate* isolate_; |
| Handle<JSFunction> function_; // Global handle. |
| + size_t max_stack_size_; |
| // Members required for parsing. |
| std::unique_ptr<UnicodeCache> unicode_cache_; |
| std::unique_ptr<Zone> zone_; |
| std::unique_ptr<Utf16CharacterStream> character_stream_; |
| std::unique_ptr<ParseInfo> parse_info_; |
| + std::unique_ptr<Parser> parser_; |
| bool can_parse_on_background_thread_; |