5#ifndef RUNTIME_VM_MESSAGE_HANDLER_H_
6#define RUNTIME_VM_MESSAGE_HANDLER_H_
35 virtual const char*
name()
const;
80 std::unique_ptr<Message> StealOOBMessage();
98 bool paused()
const {
return paused_ > 0; }
144 if (handler_ ==
nullptr) {
147 return handler_->queue_;
151 if (handler_ ==
nullptr) {
154 return handler_->oob_queue_;
170 virtual void CheckAccess()
const;
187 bool before_events =
false);
212 template <
typename GCVisitorType>
243 void ClearOOBQueue();
247 bool allow_normal_messages,
248 bool allow_multiple_normal_messages);
255 bool oob_message_handling_allowed_;
256 bool paused_for_messages_;
261 bool should_pause_on_start_;
262 bool should_pause_on_exit_;
263 bool is_paused_on_start_;
264 bool is_paused_on_exit_;
268 int64_t paused_timestamp_;
MessageQueue * oob_queue()
AcquiredQueues(MessageHandler *handler)
void PausedOnStart(bool paused)
virtual bool KeepAliveLocked()
void PostMessage(std::unique_ptr< Message > message, bool before_events=false)
void(* EndCallback)(CallbackData data)
void PausedOnExit(bool paused)
virtual void NotifyPauseOnExit()
virtual const char * name() const
bool ShouldPauseOnStart(MessageStatus status) const
int64_t paused_timestamp() const
static const char * MessageStatusString(MessageStatus status)
bool Run(ThreadPool *pool, StartCallback start_callback, EndCallback end_callback, CallbackData data)
bool is_paused_on_start() const
virtual Isolate * isolate() const
virtual void NotifyPauseOnStart()
void ClosePort(Dart_Port port)
virtual ~MessageHandler()
MessageStatus HandleNextMessage()
MessageStatus PauseAndHandleAllMessages(int64_t timeout_millis)
void set_should_pause_on_start(bool should_pause_on_start)
bool ShouldPauseOnExit(MessageStatus status) const
void set_should_pause_on_exit(bool should_pause_on_exit)
bool is_paused_on_exit() const
virtual bool IsCurrentIsolate() const
MessageStatus(* StartCallback)(CallbackData data)
MessageStatus HandleOOBMessages()
bool should_pause_on_start() const
virtual MessageStatus HandleMessage(std::unique_ptr< Message > message)=0
friend void MournFinalizerEntry(GCVisitorType *, FinalizerEntryPtr)
bool should_pause_on_exit() const
virtual void MessageNotify(Message::Priority priority)
static Thread * Current()
static int8_t data[kExtLength]
DEF_SWITCHES_START aot vmservice shared library Name of the *so containing AOT compiled Dart assets for launching the service isolate vm snapshot The VM snapshot data that will be memory mapped as read only SnapshotAssetPath must be present isolate snapshot The isolate snapshot data that will be memory mapped as read only SnapshotAssetPath must be present cache dir Path to the cache directory This is different from the persistent_cache_path in embedder which is used for Skia shader cache icu native lib Path to the library file that exports the ICU data vm service The hostname IP address on which the Dart VM Service should be served If not defaults to or::depending on whether ipv6 is specified vm service port