| // Copyright 2021 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include"base/sequence_checker.h" |
| |
| #if DCHECK_IS_ON() |
| #include<memory> |
| #include<ostream> |
| |
| #include"base/check.h" |
| #include"base/debug/stack_trace.h" |
| #endif |
| |
| namespace base{ |
| |
| #if DCHECK_IS_ON() |
| ScopedValidateSequenceChecker::ScopedValidateSequenceChecker( |
| constSequenceChecker& checker){ |
| std::unique_ptr<debug::StackTrace> bound_at; |
| DCHECK(checker.CalledOnValidSequence(&bound_at)) |
| <<(bound_at?"\nWas attached to sequence at:\n"+ bound_at->ToString() |
| :""); |
| } |
| |
| ScopedValidateSequenceChecker::~ScopedValidateSequenceChecker()=default; |
| #endif// DCHECK_IS_ON() |
| |
| }// namespace base |