| Index: net/base/file_stream_win.cc
|
| ===================================================================
|
| --- net/base/file_stream_win.cc (revision 19709)
|
| +++ net/base/file_stream_win.cc (working copy)
|
| @@ -50,7 +50,7 @@
|
| class FileStream::AsyncContext : public MessageLoopForIO::IOHandler {
|
| public:
|
| AsyncContext(FileStream* owner)
|
| - : owner_(owner), context_(), callback_(NULL) {
|
| + : owner_(owner), context_(), callback_(NULL), is_closing_(false) {
|
| context_.handler = this;
|
| }
|
| ~AsyncContext();
|
| @@ -67,9 +67,11 @@
|
| FileStream* owner_;
|
| MessageLoopForIO::IOContext context_;
|
| CompletionCallback* callback_;
|
| + bool is_closing_;
|
| };
|
|
|
| FileStream::AsyncContext::~AsyncContext() {
|
| + is_closing_ = true;
|
| bool waited = false;
|
| base::Time start = base::Time::Now();
|
| while (callback_) {
|
| @@ -93,6 +95,11 @@
|
| DCHECK(&context_ == context);
|
| DCHECK(callback_);
|
|
|
| + if (is_closing_) {
|
| + callback_ = NULL;
|
| + return;
|
| + }
|
| +
|
| int result = static_cast<int>(bytes_read);
|
| if (error && error != ERROR_HANDLE_EOF)
|
| result = MapErrorCode(error);
|
|
|
| Property changes on: net\base\file_stream_win.cc
|
| ___________________________________________________________________
|
| Modified: svn:mergeinfo
|
| Merged /trunk/src/net/base/file_stream_win.cc:r14162,15308,16015,16808,17560
|
|
|
|
|