Fixed the admitQueries bug.

Project: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/commit/ad8611d0
Tree: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/tree/ad8611d0
Diff: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/diff/ad8611d0

Branch: refs/heads/fix-admit-queries-bug
Commit: ad8611d0ec13f474d23eb6b302d3baf5c69bd8b4
Parents: 0528c77
Author: Zuyu Zhang <zu...@apache.org>
Authored: Fri Mar 10 00:19:58 2017 -0800
Committer: Zuyu Zhang <zu...@apache.org>
Committed: Fri Mar 10 01:09:30 2017 -0800

----------------------------------------------------------------------
 query_execution/PolicyEnforcerBase.cpp | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/ad8611d0/query_execution/PolicyEnforcerBase.cpp
----------------------------------------------------------------------
diff --git a/query_execution/PolicyEnforcerBase.cpp 
b/query_execution/PolicyEnforcerBase.cpp
index 1ffde4d..324bcb3 100644
--- a/query_execution/PolicyEnforcerBase.cpp
+++ b/query_execution/PolicyEnforcerBase.cpp
@@ -157,12 +157,15 @@ void PolicyEnforcerBase::removeQuery(const std::size_t 
query_id) {
 
 bool PolicyEnforcerBase::admitQueries(
     const std::vector<QueryHandle*> &query_handles) {
+  bool all_queries_admitted = true;
   for (QueryHandle *curr_query : query_handles) {
-    if (!admitQuery(curr_query)) {
-      return false;
+    if (all_queries_admitted) {
+      all_queries_admitted = admitQuery(curr_query);
+    } else {
+      waiting_queries_.push(curr_query);
     }
   }
-  return true;
+  return all_queries_admitted;
 }
 
 void PolicyEnforcerBase::recordTimeForWorkOrder(

Reply via email to