]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/include/counter.h
update sources to v12.2.1
[ceph.git] / ceph / src / include / counter.h
index d161c0b7dac61ba20b066ae3aed79594008213b3..61ed7409c7e4ff3107a2dc9bfadd7595fef71262 100644 (file)
@@ -15,6 +15,8 @@
 #ifndef CEPH_COUNTER_H
 #define CEPH_COUNTER_H
 
+#include <atomic>
+
 template <typename T>
 class Counter {
 public:
@@ -30,23 +32,23 @@ public:
   ~Counter() {
     _count()--;
   }
-  static unsigned long count() {
+  static uint64_t count() {
     return _count();
   }
-  static unsigned long increments() {
+  static uint64_t increments() {
     return _increments();
   }
-  static unsigned long decrements() {
+  static uint64_t decrements() {
     return increments()-count();
   }
 
 private:
-  static unsigned long &_count() {
-    static unsigned long c;
+  static std::atomic<uint64_t> &_count() {
+    static std::atomic<uint64_t> c;
     return c;
   }
-  static unsigned long &_increments() {
-    static unsigned long i;
+  static std::atomic<uint64_t> &_increments() {
+    static std::atomic<uint64_t> i;
     return i;
   }
 };