// Copyright 2016 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef FBL_NULL_LOCK_H_
#define FBL_NULL_LOCK_H_

#ifdef __cplusplus
#include <zircon/compiler.h>

// Notes about class NullLock
//
// NullLock is a stub class which exposes the same API as fbl::Mutex, but does
// nothing (it neither allocates nor locks).  It may be used with fbl templated
// utility classes whose locking behavior is determined by passing a lock class
// type as a template parameter to get a no-locking behavior.
namespace fbl {

class __TA_CAPABILITY("mutex") NullLock {
public:
    constexpr NullLock() { }
    void Acquire() __TA_ACQUIRE() { }
    void Release() __TA_RELEASE() { }
};

}  // namespace fbl
#endif  // ifdef __cplusplus

#endif  // FBL_NULL_LOCK_H_
