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

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

Issue 6747014: Base: Last set of files to use BASE_API (for base.dll) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 9 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
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
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 #define DFAKE_SCOPED_LOCK_THREAD_LOCKED(obj) ((void)0) 124 #define DFAKE_SCOPED_LOCK_THREAD_LOCKED(obj) ((void)0)
125 125
126 #endif 126 #endif
127 127
128 namespace base { 128 namespace base {
129 129
130 // The class ThreadCollisionWarner uses an Asserter to notify the collision 130 // The class ThreadCollisionWarner uses an Asserter to notify the collision
131 // AsserterBase is the interfaces and DCheckAsserter is the default asserter 131 // AsserterBase is the interfaces and DCheckAsserter is the default asserter
132 // used. During the unit tests is used another class that doesn't "DCHECK" 132 // used. During the unit tests is used another class that doesn't "DCHECK"
133 // in case of collision (check thread_collision_warner_unittests.cc) 133 // in case of collision (check thread_collision_warner_unittests.cc)
134 struct AsserterBase { 134 struct BASE_API AsserterBase {
135 virtual ~AsserterBase() {} 135 virtual ~AsserterBase() {}
136 virtual void warn() = 0; 136 virtual void warn() = 0;
137 }; 137 };
138 138
139 struct DCheckAsserter : public AsserterBase { 139 struct BASE_API DCheckAsserter : public AsserterBase {
140 virtual ~DCheckAsserter() {} 140 virtual ~DCheckAsserter() {}
141 virtual void warn(); 141 virtual void warn();
142 }; 142 };
143 143
144 class BASE_API ThreadCollisionWarner { 144 class BASE_API ThreadCollisionWarner {
145 public: 145 public:
146 // The parameter asserter is there only for test purpose 146 // The parameter asserter is there only for test purpose
147 ThreadCollisionWarner(AsserterBase* asserter = new DCheckAsserter()) 147 ThreadCollisionWarner(AsserterBase* asserter = new DCheckAsserter())
148 : valid_thread_id_(0), 148 : valid_thread_id_(0),
149 counter_(0), 149 counter_(0),
(...skipping 85 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 235 // Here only for class unit tests purpose, during the test I need to not
236 // DCHECK but notify the collision with something else. 236 // DCHECK but notify the collision with something else.
237 AsserterBase* asserter_; 237 AsserterBase* asserter_;
238 238
239 DISALLOW_COPY_AND_ASSIGN(ThreadCollisionWarner); 239 DISALLOW_COPY_AND_ASSIGN(ThreadCollisionWarner);
240 }; 240 };
241 241
242 } // namespace base 242 } // namespace base
243 243
244 #endif // BASE_THREADING_THREAD_COLLISION_WARNER_H_ 244 #endif // BASE_THREADING_THREAD_COLLISION_WARNER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698