Add destructors, make ringloop optional in cluster_client_t
This commit is contained in:
+17
-6
@@ -59,13 +59,24 @@ cluster_client_t::cluster_client_t(ring_loop_t *ringloop, timerfd_manager_t *tfd
|
|||||||
st_cli.parse_config(config);
|
st_cli.parse_config(config);
|
||||||
st_cli.load_global_config();
|
st_cli.load_global_config();
|
||||||
|
|
||||||
consumer.loop = [this]()
|
if (ringloop)
|
||||||
{
|
{
|
||||||
msgr.read_requests();
|
consumer.loop = [this]()
|
||||||
msgr.send_replies();
|
{
|
||||||
this->ringloop->submit();
|
msgr.read_requests();
|
||||||
};
|
msgr.send_replies();
|
||||||
ringloop->register_consumer(&consumer);
|
this->ringloop->submit();
|
||||||
|
};
|
||||||
|
ringloop->register_consumer(&consumer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
cluster_client_t::~cluster_client_t()
|
||||||
|
{
|
||||||
|
if (ringloop)
|
||||||
|
{
|
||||||
|
ringloop->unregister_consumer(&consumer);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void cluster_client_t::continue_ops()
|
void cluster_client_t::continue_ops()
|
||||||
|
|||||||
@@ -78,6 +78,7 @@ class cluster_client_t
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
cluster_client_t(ring_loop_t *ringloop, timerfd_manager_t *tfd, json11::Json & config);
|
cluster_client_t(ring_loop_t *ringloop, timerfd_manager_t *tfd, json11::Json & config);
|
||||||
|
~cluster_client_t();
|
||||||
void execute(cluster_op_t *op);
|
void execute(cluster_op_t *op);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|||||||
@@ -22,6 +22,14 @@ osd_op_t::~osd_op_t()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
osd_messenger_t::~osd_messenger_t()
|
||||||
|
{
|
||||||
|
while (clients.size() > 0)
|
||||||
|
{
|
||||||
|
stop_client(clients.begin()->first);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void osd_messenger_t::connect_peer(uint64_t peer_osd, json11::Json peer_state)
|
void osd_messenger_t::connect_peer(uint64_t peer_osd, json11::Json peer_state)
|
||||||
{
|
{
|
||||||
if (wanted_peers.find(peer_osd) == wanted_peers.end())
|
if (wanted_peers.find(peer_osd) == wanted_peers.end())
|
||||||
|
|||||||
@@ -257,6 +257,7 @@ public:
|
|||||||
void read_requests();
|
void read_requests();
|
||||||
void send_replies();
|
void send_replies();
|
||||||
void accept_connections(int listen_fd);
|
void accept_connections(int listen_fd);
|
||||||
|
~osd_messenger_t();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void try_connect_peer(uint64_t osd_num);
|
void try_connect_peer(uint64_t osd_num);
|
||||||
|
|||||||
Reference in New Issue
Block a user