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(