Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(320)

Side by Side Diff: ceee/ie/broker/executors_manager.h

Issue 5024003: Reland r65996. Disallows Singletons on non-joinable thread. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Allow another use that should be fixed. Created 10 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « base/tracked_objects.cc ('k') | chrome/browser/browser_thread.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 // 4 //
5 // @file 5 // @file
6 // ExecutorsManager implementation, an object to keep track of the 6 // ExecutorsManager implementation, an object to keep track of the
7 // CeeeExecutor objects that were instantiated in destination threads. 7 // CeeeExecutor objects that were instantiated in destination threads.
8 8
9 #ifndef CEEE_IE_BROKER_EXECUTORS_MANAGER_H_ 9 #ifndef CEEE_IE_BROKER_EXECUTORS_MANAGER_H_
10 #define CEEE_IE_BROKER_EXECUTORS_MANAGER_H_ 10 #define CEEE_IE_BROKER_EXECUTORS_MANAGER_H_
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 virtual int GetTabIdFromHandle(HWND tab_handle); 83 virtual int GetTabIdFromHandle(HWND tab_handle);
84 84
85 // Register the relation between a tab_id and a HWND. 85 // Register the relation between a tab_id and a HWND.
86 virtual void SetTabIdForHandle(long tab_id, HWND tab_handle); 86 virtual void SetTabIdForHandle(long tab_id, HWND tab_handle);
87 87
88 // Unregister the HWND and its corresponding tab_id. 88 // Unregister the HWND and its corresponding tab_id.
89 virtual void DeleteTabHandle(HWND handle); 89 virtual void DeleteTabHandle(HWND handle);
90 90
91 // Traits for Singleton<ExecutorsManager> so that we can pass an argument 91 // Traits for Singleton<ExecutorsManager> so that we can pass an argument
92 // to the constructor. 92 // to the constructor.
93 struct SingletonTraits { 93 struct SingletonTraits : public DefaultSingletonTraits<ExecutorsManager> {
94 static ExecutorsManager* New() { 94 static ExecutorsManager* New() {
95 return new ExecutorsManager(false); // By default, we want a thread. 95 return new ExecutorsManager(false); // By default, we want a thread.
96 } 96 }
97 static void Delete(ExecutorsManager* x) {
98 delete x;
99 }
100 static const bool kRegisterAtExit = true;
101 }; 97 };
102 98
103 protected: 99 protected:
104 // The data we pass to start our worker thread. 100 // The data we pass to start our worker thread.
105 // THERE IS A COPY OF THIS CLASS IN THE UNITTEST WHICH YOU NEED TO UPDATE IF 101 // THERE IS A COPY OF THIS CLASS IN THE UNITTEST WHICH YOU NEED TO UPDATE IF
106 // you change this one... 102 // you change this one...
107 struct ThreadStartData { 103 struct ThreadStartData {
108 ExecutorsManager* me; 104 ExecutorsManager* me;
109 CHandle thread_started_gate; 105 CHandle thread_started_gate;
110 }; 106 };
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
201 CHandle termination_gate_; 197 CHandle termination_gate_;
202 198
203 // To protect the access to the maps (ExecutorsManager::executors_ & 199 // To protect the access to the maps (ExecutorsManager::executors_ &
204 // ExecutorsManager::pending_registrations_ & tab_id_map_/handle_map_). 200 // ExecutorsManager::pending_registrations_ & tab_id_map_/handle_map_).
205 Lock lock_; 201 Lock lock_;
206 202
207 DISALLOW_EVIL_CONSTRUCTORS(ExecutorsManager); 203 DISALLOW_EVIL_CONSTRUCTORS(ExecutorsManager);
208 }; 204 };
209 205
210 #endif // CEEE_IE_BROKER_EXECUTORS_MANAGER_H_ 206 #endif // CEEE_IE_BROKER_EXECUTORS_MANAGER_H_
OLDNEW
« no previous file with comments | « base/tracked_objects.cc ('k') | chrome/browser/browser_thread.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698