From ac577490a5c20950f63d655de37058dc41486e99 Mon Sep 17 00:00:00 2001 From: "agl@chromium.org" Date: Wed, 10 Jun 2009 23:28:46 +0000 Subject: Revert 18109, 18111: Windows UI tests failed. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18112 0039d316-1c4b-4281-b951-d872f2087c98 --- base/global_descriptors_posix.h | 66 ----------------------------------------- 1 file changed, 66 deletions(-) delete mode 100644 base/global_descriptors_posix.h (limited to 'base/global_descriptors_posix.h') 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 -#include - -#include - -#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 > 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; - - Mapping descriptors_; -}; - -} // namespace base - -#endif // BASE_GLOBAL_DESCRIPTORS_POSIX_H_ -- cgit v1.1