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

Side by Side Diff: runtime/vm/isolate.h

Issue 22477005: - Remove unused run state from the isolate. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 4 months 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 | « runtime/vm/dart_entry.cc ('k') | runtime/vm/isolate.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 Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #ifndef VM_ISOLATE_H_ 5 #ifndef VM_ISOLATE_H_
6 #define VM_ISOLATE_H_ 6 #define VM_ISOLATE_H_
7 7
8 #include "include/dart_api.h" 8 #include "include/dart_api.h"
9 #include "platform/assert.h" 9 #include "platform/assert.h"
10 #include "platform/thread.h" 10 #include "platform/thread.h"
(...skipping 361 matching lines...) Expand 10 before | Expand all | Expand 10 after
372 kStoreBufferInterrupt = 0x4, // An interrupt to process the store buffer. 372 kStoreBufferInterrupt = 0x4, // An interrupt to process the store buffer.
373 kVmStatusInterrupt = 0x8, // An interrupt to process a status request. 373 kVmStatusInterrupt = 0x8, // An interrupt to process a status request.
374 374
375 kInterruptsMask = 375 kInterruptsMask =
376 kApiInterrupt | 376 kApiInterrupt |
377 kMessageInterrupt | 377 kMessageInterrupt |
378 kStoreBufferInterrupt | 378 kStoreBufferInterrupt |
379 kVmStatusInterrupt, 379 kVmStatusInterrupt,
380 }; 380 };
381 381
382 enum IsolateRunState {
383 kIsolateWaiting = 0, // The isolate is waiting for code to execute.
384 kIsolateRunning, // The isolate is executing code.
385 };
386
387 void ScheduleInterrupts(uword interrupt_bits); 382 void ScheduleInterrupts(uword interrupt_bits);
388 uword GetAndClearInterrupts(); 383 uword GetAndClearInterrupts();
389 384
390 bool MakeRunnable(); 385 bool MakeRunnable();
391 void Run(); 386 void Run();
392 387
393 MessageHandler* message_handler() const { return message_handler_; } 388 MessageHandler* message_handler() const { return message_handler_; }
394 void set_message_handler(MessageHandler* value) { message_handler_ = value; } 389 void set_message_handler(MessageHandler* value) { message_handler_ = value; }
395 390
396 bool is_runnable() const { return is_runnable_; } 391 bool is_runnable() const { return is_runnable_; }
397 void set_is_runnable(bool value) { is_runnable_ = value; } 392 void set_is_runnable(bool value) { is_runnable_ = value; }
398 393
399 IsolateRunState running_state() const { return running_state_; }
400 void set_running_state(IsolateRunState value) { running_state_ = value; }
401
402 uword spawn_data() const { return spawn_data_; } 394 uword spawn_data() const { return spawn_data_; }
403 void set_spawn_data(uword value) { spawn_data_ = value; } 395 void set_spawn_data(uword value) { spawn_data_ = value; }
404 396
405 static const intptr_t kNoDeoptId = -1; 397 static const intptr_t kNoDeoptId = -1;
406 static const intptr_t kDeoptIdStep = 2; 398 static const intptr_t kDeoptIdStep = 2;
407 static const intptr_t kDeoptIdBeforeOffset = 0; 399 static const intptr_t kDeoptIdBeforeOffset = 0;
408 static const intptr_t kDeoptIdAfterOffset = 1; 400 static const intptr_t kDeoptIdAfterOffset = 1;
409 intptr_t deopt_id() const { return deopt_id_; } 401 intptr_t deopt_id() const { return deopt_id_; }
410 void set_deopt_id(int value) { 402 void set_deopt_id(int value) {
411 ASSERT(value >= 0); 403 ASSERT(value >= 0);
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after
666 Simulator* simulator_; 658 Simulator* simulator_;
667 LongJump* long_jump_base_; 659 LongJump* long_jump_base_;
668 TimerList timer_list_; 660 TimerList timer_list_;
669 intptr_t deopt_id_; 661 intptr_t deopt_id_;
670 Mutex* mutex_; // protects stack_limit_ and saved_stack_limit_. 662 Mutex* mutex_; // protects stack_limit_ and saved_stack_limit_.
671 uword stack_limit_; 663 uword stack_limit_;
672 uword saved_stack_limit_; 664 uword saved_stack_limit_;
673 MessageHandler* message_handler_; 665 MessageHandler* message_handler_;
674 uword spawn_data_; 666 uword spawn_data_;
675 bool is_runnable_; 667 bool is_runnable_;
676 IsolateRunState running_state_;
677 GcPrologueCallbacks gc_prologue_callbacks_; 668 GcPrologueCallbacks gc_prologue_callbacks_;
678 GcEpilogueCallbacks gc_epilogue_callbacks_; 669 GcEpilogueCallbacks gc_epilogue_callbacks_;
679 intptr_t defer_finalization_count_; 670 intptr_t defer_finalization_count_;
680 671
681 // Deoptimization support. 672 // Deoptimization support.
682 intptr_t* deopt_cpu_registers_copy_; 673 intptr_t* deopt_cpu_registers_copy_;
683 fpu_register_t* deopt_fpu_registers_copy_; 674 fpu_register_t* deopt_fpu_registers_copy_;
684 intptr_t* deopt_frame_copy_; 675 intptr_t* deopt_frame_copy_;
685 intptr_t deopt_frame_copy_size_; 676 intptr_t deopt_frame_copy_size_;
686 DeferredSlot* deferred_boxes_; 677 DeferredSlot* deferred_boxes_;
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
876 void Cleanup(); 867 void Cleanup();
877 868
878 private: 869 private:
879 Isolate* isolate_; 870 Isolate* isolate_;
880 char* script_url_; 871 char* script_url_;
881 char* library_url_; 872 char* library_url_;
882 char* function_name_; 873 char* function_name_;
883 char* exception_callback_name_; 874 char* exception_callback_name_;
884 }; 875 };
885 876
886
887 class IsolateRunStateManager : public StackResource {
888 public:
889 explicit IsolateRunStateManager()
890 : StackResource(Isolate::Current()),
891 saved_state_(Isolate::kIsolateWaiting) {
892 saved_state_ = reinterpret_cast<Isolate*>(isolate())->running_state();
893 }
894
895 virtual ~IsolateRunStateManager() {
896 reinterpret_cast<Isolate*>(isolate())->set_running_state(saved_state_);
897 }
898
899 void SetRunState(Isolate::IsolateRunState run_state) {
900 reinterpret_cast<Isolate*>(isolate())->set_running_state(run_state);
901 }
902
903 private:
904 Isolate::IsolateRunState saved_state_;
905
906 DISALLOW_COPY_AND_ASSIGN(IsolateRunStateManager);
907 };
908
909 } // namespace dart 877 } // namespace dart
910 878
911 #endif // VM_ISOLATE_H_ 879 #endif // VM_ISOLATE_H_
OLDNEW
« no previous file with comments | « runtime/vm/dart_entry.cc ('k') | runtime/vm/isolate.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698