1*6777b538SAndroid Build Coastguard Worker // Copyright 2021 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Worker #include "base/sequence_checker.h" 6*6777b538SAndroid Build Coastguard Worker 7*6777b538SAndroid Build Coastguard Worker #if DCHECK_IS_ON() 8*6777b538SAndroid Build Coastguard Worker #include <memory> 9*6777b538SAndroid Build Coastguard Worker #include <ostream> 10*6777b538SAndroid Build Coastguard Worker 11*6777b538SAndroid Build Coastguard Worker #include "base/check.h" 12*6777b538SAndroid Build Coastguard Worker #include "base/debug/stack_trace.h" 13*6777b538SAndroid Build Coastguard Worker #endif 14*6777b538SAndroid Build Coastguard Worker 15*6777b538SAndroid Build Coastguard Worker namespace base { 16*6777b538SAndroid Build Coastguard Worker 17*6777b538SAndroid Build Coastguard Worker #if DCHECK_IS_ON() ScopedValidateSequenceChecker(const SequenceChecker & checker)18*6777b538SAndroid Build Coastguard WorkerScopedValidateSequenceChecker::ScopedValidateSequenceChecker( 19*6777b538SAndroid Build Coastguard Worker const SequenceChecker& checker) { 20*6777b538SAndroid Build Coastguard Worker std::unique_ptr<debug::StackTrace> bound_at; 21*6777b538SAndroid Build Coastguard Worker DCHECK(checker.CalledOnValidSequence(&bound_at)) 22*6777b538SAndroid Build Coastguard Worker << (bound_at ? "\nWas attached to sequence at:\n" + bound_at->ToString() 23*6777b538SAndroid Build Coastguard Worker : ""); 24*6777b538SAndroid Build Coastguard Worker } 25*6777b538SAndroid Build Coastguard Worker 26*6777b538SAndroid Build Coastguard Worker ScopedValidateSequenceChecker::~ScopedValidateSequenceChecker() = default; 27*6777b538SAndroid Build Coastguard Worker #endif // DCHECK_IS_ON() 28*6777b538SAndroid Build Coastguard Worker 29*6777b538SAndroid Build Coastguard Worker } // namespace base 30