#ifndef CEPH_LIBRADOS_IOCTXIMPL_H
#define CEPH_LIBRADOS_IOCTXIMPL_H
+#include <atomic>
+
#include "common/Cond.h"
#include "common/Mutex.h"
#include "common/snap_types.h"
#include "common/zipkin_trace.h"
-#include "include/atomic.h"
#include "include/types.h"
#include "include/rados/librados.h"
#include "include/rados/librados.hpp"
class RadosClient;
struct librados::IoCtxImpl {
- atomic_t ref_cnt;
+ std::atomic<uint64_t> ref_cnt = { 0 };
RadosClient *client;
int64_t poolid;
snapid_t snap_seq;
int set_snap_write_context(snapid_t seq, vector<snapid_t>& snaps);
void get() {
- ref_cnt.inc();
+ ref_cnt++;
}
void put() {
- if (ref_cnt.dec() == 0)
+ if (--ref_cnt == 0)
delete this;
}