]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
atomic: fix read() on i386, clean up types
authorSage Weil <sage@redhat.com>
Wed, 30 Jul 2014 21:52:06 +0000 (14:52 -0700)
committerSage Weil <sage@redhat.com>
Sat, 2 Aug 2014 00:50:43 +0000 (17:50 -0700)
Among other things, fixes #8969

Backport: firefly
Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit 96863128e6668257f435c6962263caae0d7d10dd)

src/include/atomic.h

index 88c9bfd3871e1063741bcdeb815361306cf4a8e5..c1650bef51ae7c5e4709dac156a9a400928647a1 100644 (file)
@@ -36,7 +36,7 @@ namespace ceph {
     ~atomic_spinlock_t() {
       ceph_spin_destroy(&lock);
     }
-    void set(size_t v) {
+    void set(T v) {
       ceph_spin_lock(&lock);
       val = v;
       ceph_spin_unlock(&lock);
@@ -64,7 +64,7 @@ namespace ceph {
       ceph_spin_unlock(&lock);
     }
     T read() const {
-      signed long ret;
+      T ret;
       ceph_spin_lock(&lock);
       ret = val;
       ceph_spin_unlock(&lock);
@@ -91,7 +91,7 @@ namespace ceph {
     AO_t val;
   public:
     atomic_t(AO_t i=0) : val(i) {}
-    void set(size_t v) {
+    void set(AO_t v) {
       AO_store(&val, v);
     }
     AO_t inc() {
@@ -103,8 +103,8 @@ namespace ceph {
     void add(AO_t add_me) {
       AO_fetch_and_add(&val, add_me);
     }
-    void sub(int sub_me) {
-      int negsub = 0 - sub_me;
+    void sub(AO_t sub_me) {
+      AO_t negsub = 0 - sub_me;
       AO_fetch_and_add_write(&val, (AO_t)negsub);
     }
     AO_t read() const {
@@ -134,8 +134,8 @@ namespace ceph {
 #include "include/Spinlock.h"
 
 namespace ceph {
-  typedef atomic_spinlock_t<int> atomic_t;
-  typedef atomic_spinlock_t<long long> atomic64_t;
+  typedef atomic_spinlock_t<unsigned> atomic_t;
+  typedef atomic_spinlock_t<unsigned long long> atomic64_t;
 }
 
 #endif