Chromium Code Reviews| Index: net/disk_cache/file_win.cc | 
| diff --git a/net/disk_cache/file_win.cc b/net/disk_cache/file_win.cc | 
| index 5b01224002a474a3414d34029346fe6f4ca7e781..0a95d543292ba32385d65ffc19f596af1eb62ee1 100644 | 
| --- a/net/disk_cache/file_win.cc | 
| +++ b/net/disk_cache/file_win.cc | 
| @@ -6,7 +6,7 @@ | 
| #include "base/file_path.h" | 
| #include "base/message_loop.h" | 
| -#include "base/singleton.h" | 
| +#include "base/lazy_instance.h" | 
| 
 
rvargas (doing something else)
2010/12/10 20:55:54
nit: order of includes.
 
 | 
| #include "net/disk_cache/disk_cache.h" | 
| namespace { | 
| @@ -33,6 +33,9 @@ class CompletionHandler : public MessageLoopForIO::IOHandler { | 
| DWORD actual_bytes, DWORD error); | 
| }; | 
| +static ::base::LazyInstance<CompletionHandler> g_completion_handler( | 
| 
 
rvargas (doing something else)
2010/12/10 20:55:54
nit: remove the initial ::
 
 | 
| + base::LINKER_INITIALIZED); | 
| + | 
| void CompletionHandler::OnIOCompleted(MessageLoopForIO::IOContext* context, | 
| DWORD actual_bytes, DWORD error) { | 
| MyOverlapped* data = reinterpret_cast<MyOverlapped*>(context); | 
| @@ -52,7 +55,7 @@ void CompletionHandler::OnIOCompleted(MessageLoopForIO::IOContext* context, | 
| MyOverlapped::MyOverlapped(disk_cache::File* file, size_t offset, | 
| disk_cache::FileIOCallback* callback) { | 
| memset(this, 0, sizeof(*this)); | 
| - context_.handler = Singleton<CompletionHandler>::get(); | 
| + context_.handler = g_completion_handler.Pointer(); | 
| context_.overlapped.Offset = static_cast<DWORD>(offset); | 
| file_ = file; | 
| callback_ = callback; | 
| @@ -81,7 +84,7 @@ bool File::Init(const FilePath& name) { | 
| return false; | 
| MessageLoopForIO::current()->RegisterIOHandler( | 
| - platform_file_, Singleton<CompletionHandler>::get()); | 
| + platform_file_, g_completion_handler.Pointer()); | 
| init_ = true; | 
| sync_platform_file_ = CreateFile(name.value().c_str(), access, sharing, NULL, | 
| @@ -255,7 +258,7 @@ void File::WaitForPendingIO(int* num_pending_io) { | 
| while (*num_pending_io) { | 
| // Asynchronous IO operations may be in flight and the completion may end | 
| // up calling us back so let's wait for them. | 
| - MessageLoopForIO::IOHandler* handler = Singleton<CompletionHandler>::get(); | 
| + MessageLoopForIO::IOHandler* handler = g_completion_handler.Pointer(); | 
| MessageLoopForIO::current()->WaitForIOCompletion(100, handler); | 
| } | 
| } |