| 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
|
|
|