diff options
author | Arne Juul <arnej@verizonmedia.com> | 2021-08-16 12:19:24 +0000 |
---|---|---|
committer | Arne Juul <arnej@verizonmedia.com> | 2021-08-16 12:21:53 +0000 |
commit | 523cae59a21a3b7d6d21c4749ef0384595b85fcb (patch) | |
tree | 88a9364a42dd70f9730530810fe5fd3007eefaa3 /slobrok | |
parent | 4324d883cbd8fe08a919d776772052c4e2fef297 (diff) |
explicit cleanup of partners
Diffstat (limited to 'slobrok')
-rw-r--r-- | slobrok/src/vespa/slobrok/server/sbenv.cpp | 8 | ||||
-rw-r--r-- | slobrok/src/vespa/slobrok/server/sbenv.h | 1 |
2 files changed, 9 insertions, 0 deletions
diff --git a/slobrok/src/vespa/slobrok/server/sbenv.cpp b/slobrok/src/vespa/slobrok/server/sbenv.cpp index 6bf5bbd985d..997153d3006 100644 --- a/slobrok/src/vespa/slobrok/server/sbenv.cpp +++ b/slobrok/src/vespa/slobrok/server/sbenv.cpp @@ -121,10 +121,17 @@ SBEnv::SBEnv(const ConfigShim &shim) _rpcHooks.initRPC(getSupervisor()); } +void SBEnv::cleanup() { + auto pList = _exchanger.getPartnerList(); + for (const auto & partner : pList) { + _exchanger.removePartner(partner); + } +} SBEnv::~SBEnv() { getTransport()->WaitFinished(); + cleanup(); } FNET_Scheduler * @@ -183,6 +190,7 @@ SBEnv::MainLoop() EV_STARTED("slobrok"); getTransport()->Main(); LOG(debug, "slobrok: main event loop done"); + cleanup(); } catch (vespalib::Exception &e) { LOG(error, "invalid config: %s", e.what()); EV_STOPPING("slobrok", "invalid config"); diff --git a/slobrok/src/vespa/slobrok/server/sbenv.h b/slobrok/src/vespa/slobrok/server/sbenv.h index 853e72e83c5..0ed3dd8a379 100644 --- a/slobrok/src/vespa/slobrok/server/sbenv.h +++ b/slobrok/src/vespa/slobrok/server/sbenv.h @@ -58,6 +58,7 @@ private: LocalRpcMonitorMap _localRpcMonitorMap; ServiceMapHistory _globalVisibleHistory; + void cleanup(); public: explicit SBEnv(const ConfigShim &shim); ~SBEnv(); |