diff options
author | agl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-01 20:01:24 +0000 |
---|---|---|
committer | agl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-01 20:01:24 +0000 |
commit | 4c3fe4ae337c8661c6370099bea9a5bcf5faf270 (patch) | |
tree | f9c7bc1c8eb0d775bef8b9bd3f0f3e3b74d196e8 /net/base/file_stream_win.cc | |
parent | f8ba0bdf8fcf7dd46d3dd987685d727b3149467a (diff) | |
download | chromium_src-4c3fe4ae337c8661c6370099bea9a5bcf5faf270.zip chromium_src-4c3fe4ae337c8661c6370099bea9a5bcf5faf270.tar.gz chromium_src-4c3fe4ae337c8661c6370099bea9a5bcf5faf270.tar.bz2 |
Revert "Fix the case where the browser livelocks if we cannot open a file."
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40291 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/base/file_stream_win.cc')
-rw-r--r-- | net/base/file_stream_win.cc | 41 |
1 files changed, 10 insertions, 31 deletions
diff --git a/net/base/file_stream_win.cc b/net/base/file_stream_win.cc index e1928a7..cec6a9d 100644 --- a/net/base/file_stream_win.cc +++ b/net/base/file_stream_win.cc @@ -120,10 +120,16 @@ FileStream::FileStream() open_flags_(0) { } -FileStream::FileStream(base::PlatformFile file, int open_flags) - : file_(INVALID_HANDLE_VALUE), - open_flags_(0) { - Open(file, open_flags); +FileStream::FileStream(base::PlatformFile file, int flags) + : file_(file), + open_flags_(flags) { + // If the file handle is opened with base::PLATFORM_FILE_ASYNC, we need to + // make sure we will perform asynchronous File IO to it. + if (flags & base::PLATFORM_FILE_ASYNC) { + async_context_.reset(new AsyncContext(this)); + MessageLoopForIO::current()->RegisterIOHandler(file_, + async_context_.get()); + } } FileStream::~FileStream() { @@ -141,13 +147,6 @@ void FileStream::Close() { } } -void FileStream::Release() { - if (file_ != INVALID_HANDLE_VALUE) - CancelIo(file_); - async_context_.reset(); - file_ = INVALID_HANDLE_VALUE; -} - int FileStream::Open(const FilePath& path, int open_flags) { if (IsOpen()) { DLOG(FATAL) << "File is already open!"; @@ -171,26 +170,6 @@ int FileStream::Open(const FilePath& path, int open_flags) { return OK; } -int FileStream::Open(base::PlatformFile file, int open_flags) { - if (IsOpen()) { - DLOG(FATAL) << "File is already open!"; - return ERR_UNEXPECTED; - } - - open_flags_ = open_flags; - file_ = file; - - // If the file handle is opened with base::PLATFORM_FILE_ASYNC, we need to - // make sure we will perform asynchronous File IO to it. - if (open_flags_ & base::PLATFORM_FILE_ASYNC) { - async_context_.reset(new AsyncContext(this)); - MessageLoopForIO::current()->RegisterIOHandler(file_, - async_context_.get()); - } - - return OK; -} - bool FileStream::IsOpen() const { return file_ != INVALID_HANDLE_VALUE; } |