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>
218 struct PortSetEntry :
public PortSet<PortSetEntry>::Entry {};
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()
void PausedOnStart(bool paused)
virtual bool KeepAliveLocked()
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]