OLD | NEW |
---|---|
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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/disk_cache/simple/simple_entry_impl.h" | 5 #include "net/disk_cache/simple/simple_entry_impl.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <cstring> | 8 #include <cstring> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 547 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
558 return; | 558 return; |
559 backend_->OnDeactivated(this); | 559 backend_->OnDeactivated(this); |
560 } | 560 } |
561 | 561 |
562 void SimpleEntryImpl::MarkAsDoomed() { | 562 void SimpleEntryImpl::MarkAsDoomed() { |
563 doomed_ = true; | 563 doomed_ = true; |
564 if (!backend_.get()) | 564 if (!backend_.get()) |
565 return; | 565 return; |
566 backend_->index()->Remove(entry_hash_); | 566 backend_->index()->Remove(entry_hash_); |
567 RemoveSelfFromBackend(); | 567 RemoveSelfFromBackend(); |
568 backend_->OnDoomStart(entry_hash_); | |
gavinp
2013/09/16 12:40:12
This is a bug. We should only do this on actual do
| |
568 } | 569 } |
569 | 570 |
570 void SimpleEntryImpl::RunNextOperationIfNeeded() { | 571 void SimpleEntryImpl::RunNextOperationIfNeeded() { |
571 DCHECK(io_thread_checker_.CalledOnValidThread()); | 572 DCHECK(io_thread_checker_.CalledOnValidThread()); |
572 SIMPLE_CACHE_UMA(CUSTOM_COUNTS, | 573 SIMPLE_CACHE_UMA(CUSTOM_COUNTS, |
573 "EntryOperationsPending", cache_type_, | 574 "EntryOperationsPending", cache_type_, |
574 pending_operations_.size(), 0, 100, 20); | 575 pending_operations_.size(), 0, 100, 20); |
575 if (!pending_operations_.empty() && state_ != STATE_IO_PENDING) { | 576 if (!pending_operations_.empty() && state_ != STATE_IO_PENDING) { |
576 scoped_ptr<SimpleEntryOperation> operation( | 577 scoped_ptr<SimpleEntryOperation> operation( |
577 new SimpleEntryOperation(pending_operations_.front())); | 578 new SimpleEntryOperation(pending_operations_.front())); |
(...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
910 Closure reply = base::Bind(&SimpleEntryImpl::WriteOperationComplete, | 911 Closure reply = base::Bind(&SimpleEntryImpl::WriteOperationComplete, |
911 this, | 912 this, |
912 stream_index, | 913 stream_index, |
913 callback, | 914 callback, |
914 base::Passed(&entry_stat), | 915 base::Passed(&entry_stat), |
915 base::Passed(&result)); | 916 base::Passed(&result)); |
916 worker_pool_->PostTaskAndReply(FROM_HERE, task, reply); | 917 worker_pool_->PostTaskAndReply(FROM_HERE, task, reply); |
917 } | 918 } |
918 | 919 |
919 void SimpleEntryImpl::DoomEntryInternal(const CompletionCallback& callback) { | 920 void SimpleEntryImpl::DoomEntryInternal(const CompletionCallback& callback) { |
920 if (backend_) | |
921 backend_->OnDoomStart(entry_hash_); | |
922 PostTaskAndReplyWithResult( | 921 PostTaskAndReplyWithResult( |
923 worker_pool_, FROM_HERE, | 922 worker_pool_, FROM_HERE, |
924 base::Bind(&SimpleSynchronousEntry::DoomEntry, path_, key_, entry_hash_), | 923 base::Bind(&SimpleSynchronousEntry::DoomEntry, path_, key_, entry_hash_), |
925 base::Bind(&SimpleEntryImpl::DoomOperationComplete, this, callback, | 924 base::Bind(&SimpleEntryImpl::DoomOperationComplete, this, callback, |
926 state_)); | 925 state_)); |
927 state_ = STATE_IO_PENDING; | 926 state_ = STATE_IO_PENDING; |
928 } | 927 } |
929 | 928 |
930 void SimpleEntryImpl::CreationOperationComplete( | 929 void SimpleEntryImpl::CreationOperationComplete( |
931 const CompletionCallback& completion_callback, | 930 const CompletionCallback& completion_callback, |
(...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1241 type = conflicting ? WRITE_FOLLOWS_CONFLICTING_WRITE | 1240 type = conflicting ? WRITE_FOLLOWS_CONFLICTING_WRITE |
1242 : WRITE_FOLLOWS_NON_CONFLICTING_WRITE; | 1241 : WRITE_FOLLOWS_NON_CONFLICTING_WRITE; |
1243 } | 1242 } |
1244 } | 1243 } |
1245 SIMPLE_CACHE_UMA(ENUMERATION, | 1244 SIMPLE_CACHE_UMA(ENUMERATION, |
1246 "WriteDependencyType", cache_type_, | 1245 "WriteDependencyType", cache_type_, |
1247 type, WRITE_DEPENDENCY_TYPE_MAX); | 1246 type, WRITE_DEPENDENCY_TYPE_MAX); |
1248 } | 1247 } |
1249 | 1248 |
1250 } // namespace disk_cache | 1249 } // namespace disk_cache |
OLD | NEW |