summaryrefslogtreecommitdiffstats
path: root/base/global_descriptors_posix.h
diff options
context:
space:
mode:
authoragl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-06-10 23:28:46 +0000
committeragl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-06-10 23:28:46 +0000
commitac577490a5c20950f63d655de37058dc41486e99 (patch)
treee5a53f6cad3317c2451f8ef39bf0b19bd8706e79 /base/global_descriptors_posix.h
parent0f1169993f28f8da9be5a81496fb2e2abf311387 (diff)
downloadchromium_src-ac577490a5c20950f63d655de37058dc41486e99.zip
chromium_src-ac577490a5c20950f63d655de37058dc41486e99.tar.gz
chromium_src-ac577490a5c20950f63d655de37058dc41486e99.tar.bz2
Revert 18109, 18111: Windows UI tests failed.
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18112 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/global_descriptors_posix.h')
-rw-r--r--base/global_descriptors_posix.h66
1 files changed, 0 insertions, 66 deletions
diff --git a/base/global_descriptors_posix.h b/base/global_descriptors_posix.h
deleted file mode 100644
index f606a82..0000000
--- a/base/global_descriptors_posix.h
+++ /dev/null
@@ -1,66 +0,0 @@
-// Copyright (c) 2009 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_GLOBAL_DESCRIPTORS_POSIX_H_
-#define BASE_GLOBAL_DESCRIPTORS_POSIX_H_
-
-#include "build/build_config.h"
-
-#include <vector>
-#include <utility>
-
-#include <stdint.h>
-
-#include "base/singleton.h"
-
-namespace base {
-
-// It's common practice to install file descriptors into well known slot
-// numbers before execing a child; stdin, stdout and stderr are ubiqutous
-// examples.
-//
-// However, when using a zygote model, this becomes troublesome. Since the
-// descriptors which need to be in these slots generally aren't known, any code
-// could open a resource and take one of the reserved descriptors. Simply
-// overwriting the slot isn't a viable solution.
-//
-// We could try to fill the reserved slots as soon as possible, but this is a
-// fragile solution since global constructors etc are able to open files.
-//
-// Instead, we retreat from the idea of installing descriptors in specific
-// slots and add a layer of indirection in the form of this singleton object.
-// It maps from an abstract key to a descriptor. If independent modules each
-// need to define keys, then values should be chosen randomly so as not to
-// collide.
-class GlobalDescriptors {
- public:
- typedef uint32_t Key;
- // Often we want a canonical descriptor for a given Key. In this case, we add
- // the following constant to the key value:
- static const int kBaseDescriptor = 3; // 0, 1, 2 are already taken.
-
- // Get a descriptor given a key. It is a fatal error if the key is not known.
- int Get(Key key) const;
- // Get a descriptor give a key. Returns -1 on error.
- int MaybeGet(Key key) const;
-
- typedef std::vector<std::pair<Key, int> > Mapping;
-
- // Set the descriptor for the given key.
- void Set(Key key, int fd);
-
- void Reset(const Mapping& mapping) {
- descriptors_ = mapping;
- }
-
- private:
- GlobalDescriptors() { }
- friend struct DefaultSingletonTraits<GlobalDescriptors>;
-
- Mapping descriptors_;
-};
-
-} // namespace base
-
-#endif // BASE_GLOBAL_DESCRIPTORS_POSIX_H_