Index: net/disk_cache/entry_impl.cc |
=================================================================== |
--- net/disk_cache/entry_impl.cc (revision 24800) |
+++ net/disk_cache/entry_impl.cc (working copy) |
@@ -29,7 +29,7 @@ |
public: |
SyncCallback(disk_cache::EntryImpl* entry, net::IOBuffer* buffer, |
net::CompletionCallback* callback ) |
- : entry_(entry), callback_(callback), buf_(buffer) { |
+ : entry_(entry), callback_(callback), buf_(buffer), start_(Time::Now()) { |
entry->AddRef(); |
entry->IncrementIoCount(); |
} |
@@ -41,15 +41,18 @@ |
disk_cache::EntryImpl* entry_; |
net::CompletionCallback* callback_; |
scoped_refptr<net::IOBuffer> buf_; |
+ Time start_; |
DISALLOW_EVIL_CONSTRUCTORS(SyncCallback); |
}; |
void SyncCallback::OnFileIOComplete(int bytes_copied) { |
entry_->DecrementIoCount(); |
+ if (callback_) { |
+ entry_->ReportIOTime(disk_cache::EntryImpl::kAsyncIO, start_); |
+ callback_->Run(bytes_copied); |
+ } |
entry_->Release(); |
- if (callback_) |
- callback_->Run(bytes_copied); |
delete this; |
} |
@@ -880,6 +883,9 @@ |
case kSparseWrite: |
CACHE_UMA(AGE_MS, "SparseWriteTime", 0, start); |
break; |
+ case kAsyncIO: |
+ CACHE_UMA(AGE_MS, "AsyncIOTime", group, start); |
+ break; |
default: |
NOTREACHED(); |
} |