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

Unified Diff: base/threading/thread_checker_impl.h

Issue 2165663003: TaskScheduler: Add SequenceToken and ScopedSetSequenceTokenForCurrentThread (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: improve comment Created 4 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 side-by-side diff with in-line comments
Download patch
Index: base/threading/thread_checker_impl.h
diff --git a/base/threading/thread_checker_impl.h b/base/threading/thread_checker_impl.h
index c92e143db0c3cbd1e5a2a6cdf5fc6a9608dcfea3..df41e3da993a4fdc164625361ebf898914703ab8 100644
--- a/base/threading/thread_checker_impl.h
+++ b/base/threading/thread_checker_impl.h
@@ -7,17 +7,18 @@
#include "base/base_export.h"
#include "base/compiler_specific.h"
+#include "base/sequence_token.h"
#include "base/synchronization/lock.h"
#include "base/threading/platform_thread.h"
namespace base {
-// Real implementation of ThreadChecker, for use in debug mode, or
-// for temporary use in release mode (e.g. to CHECK on a threading issue
-// seen only in the wild).
+// Real implementation of ThreadChecker, for use in debug mode, or for temporary
+// use in release mode (e.g. to CHECK on a threading issue seen only in the
+// wild).
//
-// Note: You should almost always use the ThreadChecker class to get the
-// right version for your build configuration.
+// Note: You should almost always use the ThreadChecker class to get the right
+// version for your build configuration.
class BASE_EXPORT ThreadCheckerImpl {
public:
ThreadCheckerImpl();
@@ -31,12 +32,21 @@ class BASE_EXPORT ThreadCheckerImpl {
void DetachFromThread();
private:
- void EnsureThreadIdAssigned() const;
+ void EnsureAssigned() const;
+ // Members are mutable so that CalledOnValidThread() can set them.
+
+ // Synchronizes access to all members.
mutable base::Lock lock_;
- // This is mutable so that CalledOnValidThread can set it.
- // It's guarded by |lock_|.
- mutable PlatformThreadRef valid_thread_id_;
+
+ // Thread on which CalledOnValidThread() may return true.
+ mutable PlatformThreadRef thread_id_;
+
+ // SequenceToken for which CalledOnValidThread() may return true. Used to
+ // ensure that CalledOnValidThread() doesn't return true for TaskScheduler
+ // tasks that happen to run on the same thread but weren't posted to the same
+ // SingleThreadTaskRunner.
+ mutable internal::SequenceToken sequence_token_;
};
} // namespace base

Powered by Google App Engine
This is Rietveld 408576698