From: Haomai Wang Date: Fri, 1 May 2015 17:43:49 +0000 (+0800) Subject: atomic_t: change cas to compare_and_swap and return bool X-Git-Tag: v9.0.1~29^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=72133522c75e58e0200809a34f4aca68bd952b49;p=ceph.git atomic_t: change cas to compare_and_swap and return bool Signed-off-by: Haomai Wang --- diff --git a/src/include/atomic.h b/src/include/atomic.h index 7fcfb311c13f..d5bc1c722d01 100644 --- a/src/include/atomic.h +++ b/src/include/atomic.h @@ -70,11 +70,11 @@ namespace ceph { ceph_spin_unlock(&lock); return ret; } - int cas(T o, T n) { - int success = 0; + bool compare_and_swap(T o, T n) { + bool success = false; ceph_spin_lock(&lock); if (val == o) { - success = 1; + success = true; val = n; } ceph_spin_unlock(&lock); @@ -124,7 +124,7 @@ namespace ceph { // at some point. this hack can go away someday... return AO_load_full((AO_t *)&val); } - int cas(AO_t o, AO_t n) { + bool compare_and_swap(AO_t o, AO_t n) { return AO_compare_and_swap(&val, o, n); } diff --git a/src/msg/async/Event.cc b/src/msg/async/Event.cc index daa5fb1b1912..4b63209078f0 100644 --- a/src/msg/async/Event.cc +++ b/src/msg/async/Event.cc @@ -246,7 +246,7 @@ void EventCenter::delete_time_event(uint64_t id) void EventCenter::wakeup() { - if (already_wakeup.cas(0, 1)) { + if (already_wakeup.compare_and_swap(0, 1)) { ldout(cct, 1) << __func__ << dendl; char buf[1]; buf[0] = 'c';