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

Side by Side Diff: content/browser/browser_thread_impl.cc

Issue 10796079: Added unique function names (IOTHreadRun, DBTHreadRun, etc) (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 years, 5 months 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 | « content/browser/browser_thread_impl.h ('k') | no next file » | 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #include "content/browser/browser_thread_impl.h" 5 #include "content/browser/browser_thread_impl.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/atomicops.h" 9 #include "base/atomicops.h"
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 using base::subtle::AtomicWord; 88 using base::subtle::AtomicWord;
89 AtomicWord* storage = 89 AtomicWord* storage =
90 reinterpret_cast<AtomicWord*>(&globals.thread_delegates[identifier_]); 90 reinterpret_cast<AtomicWord*>(&globals.thread_delegates[identifier_]);
91 AtomicWord stored_pointer = base::subtle::NoBarrier_Load(storage); 91 AtomicWord stored_pointer = base::subtle::NoBarrier_Load(storage);
92 BrowserThreadDelegate* delegate = 92 BrowserThreadDelegate* delegate =
93 reinterpret_cast<BrowserThreadDelegate*>(stored_pointer); 93 reinterpret_cast<BrowserThreadDelegate*>(stored_pointer);
94 if (delegate) 94 if (delegate)
95 delegate->Init(); 95 delegate->Init();
96 } 96 }
97 97
98 // We disable optimizations for this block of functions so the compiler doesn't
99 // merge them all together.
100 MSVC_DISABLE_OPTIMIZE()
101 MSVC_PUSH_DISABLE_WARNING(4748)
102
103 void BrowserThreadImpl::UIThreadRun(MessageLoop* message_loop) {
104 volatile int line_number = __LINE__;
105 Thread::Run(message_loop);
106 CHECK_GT(line_number, 0);
107 }
108
109 void BrowserThreadImpl::DBThreadRun(MessageLoop* message_loop) {
110 volatile int line_number = __LINE__;
111 Thread::Run(message_loop);
112 CHECK_GT(line_number, 0);
113 }
114
115 void BrowserThreadImpl::WebKitThreadRun(MessageLoop* message_loop) {
116 volatile int line_number = __LINE__;
117 Thread::Run(message_loop);
118 CHECK_GT(line_number, 0);
119 }
120
121 void BrowserThreadImpl::FileThreadRun(MessageLoop* message_loop) {
122 volatile int line_number = __LINE__;
123 Thread::Run(message_loop);
124 CHECK_GT(line_number, 0);
125 }
126
127 void BrowserThreadImpl::FileUserBlockingThreadRun(MessageLoop* message_loop) {
128 volatile int line_number = __LINE__;
129 Thread::Run(message_loop);
130 CHECK_GT(line_number, 0);
131 }
132
133 void BrowserThreadImpl::ProcessLauncherThreadRun(MessageLoop* message_loop) {
134 volatile int line_number = __LINE__;
135 Thread::Run(message_loop);
136 CHECK_GT(line_number, 0);
137 }
138
139 void BrowserThreadImpl::CacheThreadRun(MessageLoop* message_loop) {
140 volatile int line_number = __LINE__;
141 Thread::Run(message_loop);
142 CHECK_GT(line_number, 0);
143 }
144
145 void BrowserThreadImpl::IOThreadRun(MessageLoop* message_loop) {
146 volatile int line_number = __LINE__;
147 Thread::Run(message_loop);
148 CHECK_GT(line_number, 0);
149 }
150
151 MSVC_POP_WARNING()
152 MSVC_ENABLE_OPTIMIZE();
153
154 void BrowserThreadImpl::Run(MessageLoop* message_loop) {
155 BrowserThread::ID thread_id;
156 if (!GetCurrentThreadIdentifier(&thread_id))
157 return Thread::Run(message_loop);
158
159 switch (thread_id) {
160 case BrowserThread::UI:
161 return UIThreadRun(message_loop);
162 case BrowserThread::DB:
163 return DBThreadRun(message_loop);
164 case BrowserThread::WEBKIT_DEPRECATED:
165 return WebKitThreadRun(message_loop);
166 case BrowserThread::FILE:
167 return FileThreadRun(message_loop);
168 case BrowserThread::FILE_USER_BLOCKING:
169 return FileUserBlockingThreadRun(message_loop);
170 case BrowserThread::PROCESS_LAUNCHER:
171 return ProcessLauncherThreadRun(message_loop);
172 case BrowserThread::CACHE:
173 return CacheThreadRun(message_loop);
174 case BrowserThread::IO:
175 return IOThreadRun(message_loop);
176 case BrowserThread::ID_COUNT:
177 CHECK(false); // This shouldn't actually be reached!
178 break;
179 }
180 Thread::Run(message_loop);
181 }
182
98 void BrowserThreadImpl::CleanUp() { 183 void BrowserThreadImpl::CleanUp() {
99 BrowserThreadGlobals& globals = g_globals.Get(); 184 BrowserThreadGlobals& globals = g_globals.Get();
100 185
101 using base::subtle::AtomicWord; 186 using base::subtle::AtomicWord;
102 AtomicWord* storage = 187 AtomicWord* storage =
103 reinterpret_cast<AtomicWord*>(&globals.thread_delegates[identifier_]); 188 reinterpret_cast<AtomicWord*>(&globals.thread_delegates[identifier_]);
104 AtomicWord stored_pointer = base::subtle::NoBarrier_Load(storage); 189 AtomicWord stored_pointer = base::subtle::NoBarrier_Load(storage);
105 BrowserThreadDelegate* delegate = 190 BrowserThreadDelegate* delegate =
106 reinterpret_cast<BrowserThreadDelegate*>(stored_pointer); 191 reinterpret_cast<BrowserThreadDelegate*>(stored_pointer);
107 192
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after
376 AtomicWord* storage = reinterpret_cast<AtomicWord*>( 461 AtomicWord* storage = reinterpret_cast<AtomicWord*>(
377 &globals.thread_delegates[identifier]); 462 &globals.thread_delegates[identifier]);
378 AtomicWord old_pointer = base::subtle::NoBarrier_AtomicExchange( 463 AtomicWord old_pointer = base::subtle::NoBarrier_AtomicExchange(
379 storage, reinterpret_cast<AtomicWord>(delegate)); 464 storage, reinterpret_cast<AtomicWord>(delegate));
380 465
381 // This catches registration when previously registered. 466 // This catches registration when previously registered.
382 DCHECK(!delegate || !old_pointer); 467 DCHECK(!delegate || !old_pointer);
383 } 468 }
384 469
385 } // namespace content 470 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/browser_thread_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698