xref: /aosp_15_r20/external/gmmlib/Source/GmmLib/Utility/GmmLog/spdlog/details/null_mutex.h (revision 35ffd701415c9e32e53136d61a677a8d0a8fc4a5)
1 //
2 // Copyright(c) 2015 Gabi Melman.
3 // Distributed under the MIT License (http://opensource.org/licenses/MIT)
4 //
5 
6 #pragma once
7 
8 #include <atomic>
9 // null, no cost dummy "mutex" and dummy "atomic" int
10 
11 namespace spdlog
12 {
13 namespace details
14 {
15 struct null_mutex
16 {
locknull_mutex17     void lock() {}
unlocknull_mutex18     void unlock() {}
try_locknull_mutex19     bool try_lock()
20     {
21         return true;
22     }
23 };
24 
25 struct null_atomic_int
26 {
27     int value;
28     null_atomic_int() = default;
29 
null_atomic_intnull_atomic_int30     null_atomic_int(int val):value(val)
31     {}
32 
loadnull_atomic_int33     int load(std::memory_order) const
34     {
35         return value;
36     }
37 
storenull_atomic_int38     void store(int val)
39     {
40         value = val;
41     }
42 };
43 
44 }
45 }
46