123456789101112131415161718192021222324252627282930313233343536373839 |
- // Copyright 2022 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #include "base/threading/thread_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()
- ScopedValidateThreadChecker::ScopedValidateThreadChecker(
- const ThreadChecker& checker) {
- std::unique_ptr<debug::StackTrace> bound_at;
- DCHECK(checker.CalledOnValidThread(&bound_at))
- << (bound_at ? "\nWas attached to thread at:\n" + bound_at->ToString()
- : "");
- }
- ScopedValidateThreadChecker::ScopedValidateThreadChecker(
- const ThreadChecker& checker,
- const StringPiece& msg) {
- std::unique_ptr<debug::StackTrace> bound_at;
- DCHECK(checker.CalledOnValidThread(&bound_at))
- << msg
- << (bound_at ? "\nWas attached to thread at:\n" + bound_at->ToString()
- : "");
- }
- ScopedValidateThreadChecker::~ScopedValidateThreadChecker() = default;
- #endif // DCHECK_IS_ON()
- } // namespace base
|