uint32_t reconnects;
uint32_t connect_seq, global_seq, peer_global_seq;
uint64_t in_seq, out_seq_acked; // atomic<uint64_t>, got receipt
- atomic64_t out_seq; // atomic<uint64_t>
+ std::atomic<uint64_t> out_seq;
uint32_t flags;
flags(FLAG_NONE) {}
uint64_t get_session_state() {
- return session_state.read();
+ return session_state;
}
uint64_t get_startup_state() {
- return startup_state.read();
+ return startup_state;
}
void set_in_seq(uint64_t seq) {
}
uint64_t next_out_seq() {
- return out_seq.inc();
+ return ++out_seq;
};
// state machine
}
ostream& conn_prefix(std::ostream *_dout);
- bool is_connected() override { return connected.read(); }
+ bool is_connected() override { return connected; }
int send_message(Message *m) override;
void send_keepalive() override {send_keepalive_or_ack();}
XioConnection* get() {
#if 0
- int refs = nref.read();
- cout << "XioConnection::get " << this << " " << refs << std::endl;
+ cout << "XioConnection::get " << this << " " << nref.load() << std::endl;
#endif
RefCountedObject::get();
return this;
void put() {
RefCountedObject::put();
#if 0
- int refs = nref.read();
- cout << "XioConnection::put " << this << " " << refs << std::endl;
+ cout << "XioConnection::put " << this << " " << nref.load() << std::endl;
#endif
}
class XioLoopbackConnection : public Connection
{
private:
- atomic64_t seq;
+ std::atomic<uint64_t> seq = { 0 };
public:
- explicit XioLoopbackConnection(Messenger *m) : Connection(m->cct, m), seq(0)
+ explicit XioLoopbackConnection(Messenger *m) : Connection(m->cct, m)
{
const entity_inst_t& m_inst = m->get_myinst();
peer_addr = m_inst.addr;
void mark_disposable() override {}
uint64_t get_seq() {
- return seq.read();
+ return seq;
}
uint64_t next_seq() {