// Copyright 2016 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef MOJO_PUBLIC_CPP_BINDINGS_LIB_MAY_AUTO_LOCK_H_ #define MOJO_PUBLIC_CPP_BINDINGS_LIB_MAY_AUTO_LOCK_H_ #include <optional> #include "base/component_export.h" #include "base/memory/raw_ptr_exclusion.h" #include "base/synchronization/lock.h" namespace mojo { namespace internal { // Similar to base::AutoLock, except that it does nothing if |lock| passed into // the constructor is null. class COMPONENT_EXPORT(MOJO_CPP_BINDINGS_BASE) MayAutoLock { … }; // Similar to base::AutoUnlock, except that it does nothing if |lock| passed // into the constructor is null. class COMPONENT_EXPORT(MOJO_CPP_BINDINGS_BASE) MayAutoUnlock { … }; } // namespace internal } // namespace mojo #endif // MOJO_PUBLIC_CPP_BINDINGS_LIB_MAY_AUTO_LOCK_H_