Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(523)

Unified Diff: runtime/vm/message.cc

Issue 9420038: Heartbeat implementation of dart:mirrors. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/vm/message.h ('k') | runtime/vm/native_arguments.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/message.cc
===================================================================
--- runtime/vm/message.cc (revision 5107)
+++ runtime/vm/message.cc (working copy)
@@ -110,14 +110,23 @@
}
}
+
Message* MessageQueue::DequeueNoWait() {
MonitorLocker ml(&monitor_);
- return DequeueNoWaitHoldsLock();
+ return DequeueNoWaitHoldsLock(Message::kFirstPriority);
}
-Message* MessageQueue::DequeueNoWaitHoldsLock() {
+
+Message* MessageQueue::DequeueNoWaitWithPriority(
+ Message::Priority min_priority) {
+ MonitorLocker ml(&monitor_);
+ return DequeueNoWaitHoldsLock(min_priority);
+}
+
+
+Message* MessageQueue::DequeueNoWaitHoldsLock(Message::Priority min_priority) {
// Look for the highest priority available message.
- for (int p = Message::kNumPriorities-1; p >= Message::kFirstPriority; p--) {
+ for (int p = Message::kNumPriorities-1; p >= min_priority; p--) {
Message* result = head_[p];
if (result != NULL) {
head_[p] = result->next_;
@@ -138,11 +147,11 @@
Message* MessageQueue::Dequeue(int64_t millis) {
ASSERT(millis >= 0);
MonitorLocker ml(&monitor_);
- Message* result = DequeueNoWaitHoldsLock();
+ Message* result = DequeueNoWaitHoldsLock(Message::kFirstPriority);
if (result == NULL) {
// No message available at any priority.
monitor_.Wait(millis);
- result = DequeueNoWaitHoldsLock();
+ result = DequeueNoWaitHoldsLock(Message::kFirstPriority);
}
return result;
}
« no previous file with comments | « runtime/vm/message.h ('k') | runtime/vm/native_arguments.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698