| // 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_ |