Index: base/sequence_checker_impl.h |
diff --git a/base/sequence_checker_impl.h b/base/sequence_checker_impl.h |
index a54c38845114b15a1e78ff097ad116b55d29cb82..74039718f62de96890aeee3c6e6524766523a1c0 100644 |
--- a/base/sequence_checker_impl.h |
+++ b/base/sequence_checker_impl.h |
@@ -5,12 +5,13 @@ |
#ifndef BASE_SEQUENCE_CHECKER_IMPL_H_ |
#define BASE_SEQUENCE_CHECKER_IMPL_H_ |
-#include <memory> |
- |
#include "base/base_export.h" |
#include "base/compiler_specific.h" |
#include "base/macros.h" |
+#include "base/sequence_token.h" |
#include "base/synchronization/lock.h" |
+#include "base/threading/sequenced_worker_pool.h" |
+#include "base/threading/thread_checker_impl.h" |
namespace base { |
@@ -34,11 +35,22 @@ |
void DetachFromSequence(); |
private: |
- class Core; |
+ void EnsureSequenceTokenAssigned() const; |
// Guards all variables below. |
mutable Lock lock_; |
- mutable std::unique_ptr<Core> core_; |
+ |
+ // True when the SequenceChecker is bound to a sequence or a thread. |
+ mutable bool is_assigned_ = false; |
+ |
+ mutable SequenceToken sequence_token_; |
+ |
+ // TODO(gab): Remove this when SequencedWorkerPool is deprecated in favor of |
+ // TaskScheduler. crbug.com/622400 |
+ mutable SequencedWorkerPool::SequenceToken sequenced_worker_pool_token_; |
+ |
+ // Used when |sequenced_worker_pool_token_| and |sequence_token_| are invalid. |
+ ThreadCheckerImpl thread_checker_; |
DISALLOW_COPY_AND_ASSIGN(SequenceCheckerImpl); |
}; |