diff options
author | agl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-11 15:25:54 +0000 |
---|---|---|
committer | agl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-11 15:25:54 +0000 |
commit | ef73044e42948214832dd11dd3326b738f816eb6 (patch) | |
tree | 1105589709517fab2cc2ed5d745d82299d510f77 /base/dir_reader_posix.h | |
parent | 6e240d7084c1cecc7fdedabe83f860659888dd2f (diff) | |
download | chromium_src-ef73044e42948214832dd11dd3326b738f816eb6.zip chromium_src-ef73044e42948214832dd11dd3326b738f816eb6.tar.gz chromium_src-ef73044e42948214832dd11dd3326b738f816eb6.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@41275 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/dir_reader_posix.h')
-rw-r--r-- | base/dir_reader_posix.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/base/dir_reader_posix.h b/base/dir_reader_posix.h new file mode 100644 index 0000000..e9ad11e --- /dev/null +++ b/base/dir_reader_posix.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_POSIX_H_ +#define BASE_DIR_READER_POSIX_H_ + +#include "build/build_config.h" + +// This header provides a class, DirReaderPosix, which allows one to open and +// read from directories without allocating memory. For the interface, see +// the generic fallback in dir_reader_fallback.h. + +#if defined(OS_LINUX) +#include "base/dir_reader_linux.h" +#else +#include "base/dir_reader_fallback.h" +#endif + +namespace base { + +#if defined(OS_LINUX) +typedef DirReaderLinux DirReaderPosix; +#else +typedef DirReaderFallback DirReaderPosix; +#endif + +} // namespace base + +#endif // BASE_DIR_READER_POSIX_H_ |