| Index: runtime/vm/message_handler.cc
|
| diff --git a/runtime/vm/message_handler.cc b/runtime/vm/message_handler.cc
|
| index 34e3b40a2900d290dcd2011bd69f983b05865d9e..6a473dd74033f4c6d019be2437de0c7a8ec29aa9 100644
|
| --- a/runtime/vm/message_handler.cc
|
| +++ b/runtime/vm/message_handler.cc
|
| @@ -7,6 +7,7 @@
|
| #include "vm/dart.h"
|
| #include "vm/lockers.h"
|
| #include "vm/port.h"
|
| +#include "vm/thread_interrupter.h"
|
|
|
| namespace dart {
|
|
|
| @@ -145,6 +146,10 @@ 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
|
| + // an isolate to start handling messages.
|
| + ThreadInterrupter::WakeUp();
|
| +
|
| // TODO(turnidge): Add assert that monitor_ is held here.
|
| bool result = true;
|
| Message::Priority min_priority = (allow_normal_messages && !paused()) ?
|
|
|