monc{g_ceph_context, poolctx},
client_messenger(Messenger::create(g_ceph_context, "async", entity_name_t::CLIENT(-1), "client", getpid())),
objecter{g_ceph_context, client_messenger.get(), &monc, poolctx},
- client{client_messenger.get(), &monc, &objecter},
timer(g_ceph_context, beacon_lock),
orig_argc(argc),
orig_argv(argv)
// Initialize Messenger
client_messenger->add_dispatcher_tail(this);
client_messenger->add_dispatcher_head(&objecter);
- client_messenger->add_dispatcher_tail(&client);
client_messenger->start();
poolctx.start(2);
objecter.init();
objecter.enable_blocklist_events();
objecter.start();
- client.init();
timer.init();
{
std::lock_guard bl(beacon_lock);
timer.shutdown();
}
- // client uses monc and objecter
- client.shutdown();
+
// Stop asio threads, so leftover events won't call into shut down
// monclient/objecter.
poolctx.finish();
#include "common/Timer.h"
#include "common/LogClient.h"
-#include "client/Client.h"
#include "mon/MonClient.h"
#include "osdc/Objecter.h"
#include "messages/MNVMeofGwMap.h"
MonClient monc;
std::unique_ptr<Messenger> client_messenger;
Objecter objecter;
- Client client;
std::map<NvmeGroupKey, NvmeGwMonClientStates> map;
ceph::mutex lock = ceph::make_mutex("NVMeofGw::lock");
// allow beacons to be sent independently of handle_nvmeof_gw_map