diff options
author | agl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-10 19:00:58 +0000 |
---|---|---|
committer | agl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-10 19:00:58 +0000 |
commit | cd3cf12588560bf1c1ffc780ce7fdeae044b100e (patch) | |
tree | 8ab79805aa9e50db3a2eae36e324af2f92bc13d4 /base/dir_reader_fallback.h | |
parent | 2fc4c21d0b6cebaf8ebc101cc3fe20ef38407373 (diff) | |
download | chromium_src-cd3cf12588560bf1c1ffc780ce7fdeae044b100e.zip chromium_src-cd3cf12588560bf1c1ffc780ce7fdeae044b100e.tar.gz chromium_src-cd3cf12588560bf1c1ffc780ce7fdeae044b100e.tar.bz2 |
POSIX: don't allocate memory after forking.
Previously we would allocate memory in the child process. However, the
allocation might have happened while the malloc lock was held,
resulting in a deadlock.
This patch removes allocation from the child but probably makes Mac's
startup time slower until a Mac person can implement
dir_reader_posix.h.
TEST=Unittest for new code
BUG=36678
http://codereview.chromium.org/672003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@41181 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/dir_reader_fallback.h')
-rw-r--r-- | base/dir_reader_fallback.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/base/dir_reader_fallback.h b/base/dir_reader_fallback.h new file mode 100644 index 0000000..c8f02e6 --- /dev/null +++ b/base/dir_reader_fallback.h @@ -0,0 +1,30 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef BASE_DIR_READER_FALLBACK_H_ +#define BASE_DIR_READER_FALLBACK_H_ + +namespace base { + +class DirReaderFallback { + public: + // Open a directory. If |IsValid| is true, then |Next| can be called to start + // the iteration at the beginning of the directory. + explicit DirReaderFallback(const char* directory_path) { } + // After construction, IsValid returns true iff the directory was + // successfully opened. + bool IsValid() const { return false; } + // Move to the next entry returning false if the iteration is complete. + bool Next() { return false; } + // Return the name of the current directory entry. + const char* name() { return 0;} + // Return the file descriptor which is being used. + int fd() const { return -1; } + // Returns true if this is a no-op fallback class (for testing). + static bool IsFallback() { return true; } +}; + +} // namespace base + +#endif // BASE_DIR_READER_FALLBACK_H_ |