Index: runtime/vm/message_handler.cc |
diff --git a/runtime/vm/message_handler.cc b/runtime/vm/message_handler.cc |
index 3990b5795a8a93ef441b521adfebdfe4ac35694f..04c45fa56a0468ade29c71782a23ef0c166f0359 100644 |
--- a/runtime/vm/message_handler.cc |
+++ b/runtime/vm/message_handler.cc |
@@ -346,6 +346,9 @@ void MessageHandler::TaskCallback() { |
PausedOnStartLocked(&ml, false); |
} |
} |
+ if (is_paused_on_exit()) { |
+ status = paused_on_exit_status_; |
+ } |
#endif |
if (status == kOK) { |
@@ -381,9 +384,10 @@ void MessageHandler::TaskCallback() { |
name()); |
} |
PausedOnExitLocked(&ml, true); |
- // More messages may have come in while we released the monitor. |
- status = HandleMessages(&ml, false, false); |
+ paused_on_exit_status_ = status; |
} |
+ // More messages may have come in while we released the monitor. |
+ status = HandleMessages(&ml, false, false); |
if (ShouldPauseOnExit(status)) { |
// Still paused. |
ASSERT(oob_queue_->IsEmpty()); |