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

Side by Side Diff: base/threading/thread_collision_warner.h

Issue 8520018: Add OVERRIDE to base/. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: extra header Created 9 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/threading/thread.h ('k') | base/threading/watchdog.h » ('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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 #ifndef BASE_THREADING_THREAD_COLLISION_WARNER_H_ 5 #ifndef BASE_THREADING_THREAD_COLLISION_WARNER_H_
6 #define BASE_THREADING_THREAD_COLLISION_WARNER_H_ 6 #define BASE_THREADING_THREAD_COLLISION_WARNER_H_
7 #pragma once 7 #pragma once
8 8
9 #include <memory> 9 #include <memory>
10 10
11 #include "base/atomicops.h"
11 #include "base/base_export.h" 12 #include "base/base_export.h"
12 #include "base/atomicops.h" 13 #include "base/compiler_specific.h"
13 14
14 // A helper class alongside macros to be used to verify assumptions about thread 15 // A helper class alongside macros to be used to verify assumptions about thread
15 // safety of a class. 16 // safety of a class.
16 // 17 //
17 // Example: Queue implementation non thread-safe but still usable if clients 18 // Example: Queue implementation non thread-safe but still usable if clients
18 // are synchronized somehow. 19 // are synchronized somehow.
19 // 20 //
20 // In this case the macro DFAKE_SCOPED_LOCK has to be 21 // In this case the macro DFAKE_SCOPED_LOCK has to be
21 // used, it checks that if a thread is inside the push/pop then 22 // used, it checks that if a thread is inside the push/pop then
22 // noone else is still inside the pop/push 23 // noone else is still inside the pop/push
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 // AsserterBase is the interfaces and DCheckAsserter is the default asserter 132 // AsserterBase is the interfaces and DCheckAsserter is the default asserter
132 // used. During the unit tests is used another class that doesn't "DCHECK" 133 // used. During the unit tests is used another class that doesn't "DCHECK"
133 // in case of collision (check thread_collision_warner_unittests.cc) 134 // in case of collision (check thread_collision_warner_unittests.cc)
134 struct BASE_EXPORT AsserterBase { 135 struct BASE_EXPORT AsserterBase {
135 virtual ~AsserterBase() {} 136 virtual ~AsserterBase() {}
136 virtual void warn() = 0; 137 virtual void warn() = 0;
137 }; 138 };
138 139
139 struct BASE_EXPORT DCheckAsserter : public AsserterBase { 140 struct BASE_EXPORT DCheckAsserter : public AsserterBase {
140 virtual ~DCheckAsserter() {} 141 virtual ~DCheckAsserter() {}
141 virtual void warn(); 142 virtual void warn() OVERRIDE;
142 }; 143 };
143 144
144 class BASE_EXPORT ThreadCollisionWarner { 145 class BASE_EXPORT ThreadCollisionWarner {
145 public: 146 public:
146 // The parameter asserter is there only for test purpose 147 // The parameter asserter is there only for test purpose
147 ThreadCollisionWarner(AsserterBase* asserter = new DCheckAsserter()) 148 ThreadCollisionWarner(AsserterBase* asserter = new DCheckAsserter())
148 : valid_thread_id_(0), 149 : valid_thread_id_(0),
149 counter_(0), 150 counter_(0),
150 asserter_(asserter) {} 151 asserter_(asserter) {}
151 152
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
235 // Here only for class unit tests purpose, during the test I need to not 236 // Here only for class unit tests purpose, during the test I need to not
236 // DCHECK but notify the collision with something else. 237 // DCHECK but notify the collision with something else.
237 AsserterBase* asserter_; 238 AsserterBase* asserter_;
238 239
239 DISALLOW_COPY_AND_ASSIGN(ThreadCollisionWarner); 240 DISALLOW_COPY_AND_ASSIGN(ThreadCollisionWarner);
240 }; 241 };
241 242
242 } // namespace base 243 } // namespace base
243 244
244 #endif // BASE_THREADING_THREAD_COLLISION_WARNER_H_ 245 #endif // BASE_THREADING_THREAD_COLLISION_WARNER_H_
OLDNEW
« no previous file with comments | « base/threading/thread.h ('k') | base/threading/watchdog.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698