OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "net/base/host_resolver_impl.h" | 5 #include "net/base/host_resolver_impl.h" |
6 | 6 |
7 #if defined(OS_WIN) | 7 #if defined(OS_WIN) |
8 #include <Winsock2.h> | 8 #include <Winsock2.h> |
9 #elif defined(OS_POSIX) | 9 #elif defined(OS_POSIX) |
10 #include <netdb.h> | 10 #include <netdb.h> |
(...skipping 371 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
382 return highest_priority_; | 382 return highest_priority_; |
383 } | 383 } |
384 | 384 |
385 size_t total_count() const { | 385 size_t total_count() const { |
386 return total_count_; | 386 return total_count_; |
387 } | 387 } |
388 | 388 |
389 void Add(RequestPriority req_priority) { | 389 void Add(RequestPriority req_priority) { |
390 ++total_count_; | 390 ++total_count_; |
391 ++counts_[req_priority]; | 391 ++counts_[req_priority]; |
392 if (highest_priority_ > req_priority) | 392 if (highest_priority_ < req_priority) |
393 highest_priority_ = req_priority; | 393 highest_priority_ = req_priority; |
394 } | 394 } |
395 | 395 |
396 void Remove(RequestPriority req_priority) { | 396 void Remove(RequestPriority req_priority) { |
397 DCHECK_GT(total_count_, 0u); | 397 DCHECK_GT(total_count_, 0u); |
398 DCHECK_GT(counts_[req_priority], 0u); | 398 DCHECK_GT(counts_[req_priority], 0u); |
399 --total_count_; | 399 --total_count_; |
400 --counts_[req_priority]; | 400 --counts_[req_priority]; |
401 size_t i; | 401 size_t i; |
402 for (i = highest_priority_; i < NUM_PRIORITIES && !counts_[i]; ++i); | 402 for (i = highest_priority_; i > MINIMUM_PRIORITY && !counts_[i]; --i); |
403 highest_priority_ = static_cast<RequestPriority>(i); | 403 highest_priority_ = static_cast<RequestPriority>(i); |
404 | 404 |
405 // In absence of requests set default. | 405 // In absence of requests, default to MINIMUM_PRIORITY. |
406 if (highest_priority_ == NUM_PRIORITIES) { | 406 if (total_count_ == 0) |
407 DCHECK_EQ(0u, total_count_); | 407 DCHECK_EQ(MINIMUM_PRIORITY, highest_priority_); |
408 highest_priority_ = IDLE; | |
409 } | |
410 } | 408 } |
411 | 409 |
412 private: | 410 private: |
413 RequestPriority highest_priority_; | 411 RequestPriority highest_priority_; |
414 size_t total_count_; | 412 size_t total_count_; |
415 size_t counts_[NUM_PRIORITIES]; | 413 size_t counts_[NUM_PRIORITIES]; |
416 }; | 414 }; |
417 | 415 |
418 //----------------------------------------------------------------------------- | 416 //----------------------------------------------------------------------------- |
419 | 417 |
(...skipping 1533 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1953 | 1951 |
1954 if (self && dns_config.IsValid()) | 1952 if (self && dns_config.IsValid()) |
1955 TryServingAllJobsFromHosts(); | 1953 TryServingAllJobsFromHosts(); |
1956 } | 1954 } |
1957 | 1955 |
1958 bool HostResolverImpl::HaveDnsConfig() const { | 1956 bool HostResolverImpl::HaveDnsConfig() const { |
1959 return (dns_client_.get() != NULL) && (dns_client_->GetConfig() != NULL); | 1957 return (dns_client_.get() != NULL) && (dns_client_->GetConfig() != NULL); |
1960 } | 1958 } |
1961 | 1959 |
1962 } // namespace net | 1960 } // namespace net |
OLD | NEW |