| Index: runtime/vm/message_handler.cc
 | 
| diff --git a/runtime/vm/message_handler.cc b/runtime/vm/message_handler.cc
 | 
| index f832cbcb1a452de06ef7199da45fa6e94a28ec9f..ef8a71ef1c16ace0d6526e3dd56936bf2958039f 100644
 | 
| --- a/runtime/vm/message_handler.cc
 | 
| +++ b/runtime/vm/message_handler.cc
 | 
| @@ -24,6 +24,7 @@ class MessageHandlerTask : public ThreadPool::Task {
 | 
|    }
 | 
|  
 | 
|    virtual void Run() {
 | 
| +    ASSERT(handler_ != NULL);
 | 
|      handler_->TaskCallback();
 | 
|    }
 | 
|  
 | 
| @@ -82,6 +83,7 @@ void MessageHandler::Run(ThreadPool* pool,
 | 
|                           StartCallback start_callback,
 | 
|                           EndCallback end_callback,
 | 
|                           CallbackData data) {
 | 
| +  bool task_running;
 | 
|    MonitorLocker ml(&monitor_);
 | 
|    if (FLAG_trace_isolates) {
 | 
|      OS::Print("[+] Starting message handler:\n"
 | 
| @@ -94,12 +96,14 @@ void MessageHandler::Run(ThreadPool* pool,
 | 
|    end_callback_ = end_callback;
 | 
|    callback_data_ = data;
 | 
|    task_ = new MessageHandlerTask(this);
 | 
| -  pool_->Run(task_);
 | 
| +  task_running = pool_->Run(task_);
 | 
| +  ASSERT(task_running);
 | 
|  }
 | 
|  
 | 
|  
 | 
|  void MessageHandler::PostMessage(Message* message, bool before_events) {
 | 
|    Message::Priority saved_priority;
 | 
| +  bool task_running = true;
 | 
|    {
 | 
|      MonitorLocker ml(&monitor_);
 | 
|      if (FLAG_trace_isolates) {
 | 
| @@ -124,11 +128,13 @@ void MessageHandler::PostMessage(Message* message, bool before_events) {
 | 
|      }
 | 
|      message = NULL;  // Do not access message.  May have been deleted.
 | 
|  
 | 
| -    if (pool_ != NULL && task_ == NULL) {
 | 
| +    if ((pool_ != NULL) && (task_ == NULL)) {
 | 
|        task_ = new MessageHandlerTask(this);
 | 
| -      pool_->Run(task_);
 | 
| +      task_running = pool_->Run(task_);
 | 
|      }
 | 
|    }
 | 
| +  ASSERT(task_running);
 | 
| +
 | 
|    // Invoke any custom message notification.
 | 
|    MessageNotify(saved_priority);
 | 
|  }
 | 
| @@ -149,7 +155,7 @@ bool MessageHandler::HandleMessages(bool allow_normal_messages,
 | 
|    // If isolate() returns NULL StartIsolateScope does nothing.
 | 
|    StartIsolateScope start_isolate(isolate());
 | 
|  
 | 
| -  // ThreadInterrupter may have gone to sleep waiting while waiting for
 | 
| +  // ThreadInterrupter may have gone to sleep while waiting for
 | 
|    // an isolate to start handling messages.
 | 
|    ThreadInterrupter::WakeUp();
 | 
|  
 | 
| 
 |