From: Haomai Wang Date: Tue, 8 Mar 2016 06:33:45 +0000 (+0800) Subject: Event: replace atomic_t with c++ atomic X-Git-Tag: v11.0.1~920^2~23 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=e515c9dfea29c1ca7e2dd575486e36322c22973e;p=ceph-ci.git Event: replace atomic_t with c++ atomic Signed-off-by: Haomai Wang --- diff --git a/src/msg/async/Event.cc b/src/msg/async/Event.cc index 5bad77605f5..df96343451f 100644 --- a/src/msg/async/Event.cc +++ b/src/msg/async/Event.cc @@ -300,7 +300,7 @@ int EventCenter::process_events(int timeout_microseconds) auto now = clock_type::now(); // If exists external events, don't block - if (external_num_events.read()) { + if (external_num_events.load()) { tv.tv_sec = 0; tv.tv_usec = 0; next_time = now; @@ -365,14 +365,14 @@ int EventCenter::process_events(int timeout_microseconds) if (trigger_time) numevents += process_time_events(); - if (external_num_events.read()) { + if (external_num_events.load()) { external_lock.Lock(); if (external_events.empty()) { external_lock.Unlock(); } else { deque cur_process; cur_process.swap(external_events); - external_num_events.set(0); + external_num_events.store(0); external_lock.Unlock(); while (!cur_process.empty()) { EventCallbackRef e = cur_process.front(); @@ -390,7 +390,7 @@ void EventCenter::dispatch_event_external(EventCallbackRef e) { external_lock.Lock(); external_events.push_back(e); - uint64_t num = external_num_events.inc(); + uint64_t num = ++external_num_events; external_lock.Unlock(); if (!in_thread()) wakeup(); diff --git a/src/msg/async/Event.h b/src/msg/async/Event.h index 9cf1a920dee..356c74ef851 100644 --- a/src/msg/async/Event.h +++ b/src/msg/async/Event.h @@ -37,7 +37,10 @@ #endif #endif -#include "include/atomic.h" +#include +#include +#include + #include "include/Context.h" #include "include/unordered_map.h" #include "common/ceph_time.h" @@ -108,7 +111,7 @@ class EventCenter { int nevent; // Used only to external event Mutex external_lock, file_lock; - atomic_t external_num_events; + std::atomic_ulong external_num_events; deque external_events; vector file_events; EventDriver *driver;