| 1234567891011121314151617181920212223242526272829303132333435 | 
							- // Copyright(c) 2015-present, Gabi Melman & spdlog contributors.
 
- // Distributed under the MIT License (http://opensource.org/licenses/MIT)
 
- #pragma once
 
- #include <atomic>
 
- #include <utility>
 
- // null, no cost dummy "mutex" and dummy "atomic" int
 
- namespace spdlog {
 
- namespace details {
 
- struct null_mutex {
 
-     void lock() const {}
 
-     void unlock() const {}
 
- };
 
- struct null_atomic_int {
 
-     int value;
 
-     null_atomic_int() = default;
 
-     explicit null_atomic_int(int new_value)
 
-         : value(new_value) {}
 
-     int load(std::memory_order = std::memory_order_relaxed) const { return value; }
 
-     void store(int new_value, std::memory_order = std::memory_order_relaxed) { value = new_value; }
 
-     int exchange(int new_value, std::memory_order = std::memory_order_relaxed) {
 
-         std::swap(new_value, value);
 
-         return new_value;  // return value before the call
 
-     }
 
- };
 
- }  // namespace details
 
- }  // namespace spdlog
 
 
  |