aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVirendra Kakade <virendra.kakade@ni.com>2019-04-24 14:36:42 -0700
committermichael-west <michael.west@ettus.com>2019-05-21 17:20:42 -0700
commit49d05ada725283aedbc6734533e287b6a7b669d2 (patch)
tree8f78670ca7b574e15e4bef3a919f7c0fb7d9fe7d
parented2507a688d8d2e3aa6825f90ce29192d244d233 (diff)
downloaduhd-49d05ada725283aedbc6734533e287b6a7b669d2.tar.gz
uhd-49d05ada725283aedbc6734533e287b6a7b669d2.tar.bz2
uhd-49d05ada725283aedbc6734533e287b6a7b669d2.zip
mpmd: Release resources on destruction
This will clear the property tree, block registry, transport managers, and motherboard list on destruction of mpmd_impl.
-rw-r--r--host/lib/usrp/mpmd/mpmd_impl.cpp4
-rw-r--r--host/lib/usrp/mpmd/mpmd_mboard_impl.cpp6
2 files changed, 6 insertions, 4 deletions
diff --git a/host/lib/usrp/mpmd/mpmd_impl.cpp b/host/lib/usrp/mpmd/mpmd_impl.cpp
index 2f3584498..05d847060 100644
--- a/host/lib/usrp/mpmd/mpmd_impl.cpp
+++ b/host/lib/usrp/mpmd/mpmd_impl.cpp
@@ -231,7 +231,9 @@ mpmd_impl::mpmd_impl(const device_addr_t& device_args)
mpmd_impl::~mpmd_impl()
{
- /* nop */
+ _rfnoc_block_ctrl.clear();
+ _tree.reset();
+ _mb.clear();
}
/*****************************************************************************
diff --git a/host/lib/usrp/mpmd/mpmd_mboard_impl.cpp b/host/lib/usrp/mpmd/mpmd_mboard_impl.cpp
index e2d347778..8bf8d6826 100644
--- a/host/lib/usrp/mpmd/mpmd_mboard_impl.cpp
+++ b/host/lib/usrp/mpmd/mpmd_mboard_impl.cpp
@@ -302,9 +302,9 @@ mpmd_mboard_impl::mpmd_mboard_impl(
mpmd_mboard_impl::~mpmd_mboard_impl()
{
- // Destroy the claimer task to avoid spurious asynchronous reclaim call after the
- // unclaim.
- UHD_SAFE_CALL(dump_logs(); _claimer_task.reset();
+ // Destroy the claimer task to avoid spurious asynchronous reclaim call
+ // after the unclaim.
+ UHD_SAFE_CALL(dump_logs(); _claimer_task.reset(); _xport_mgr.reset();
if (not rpc->request_with_token<bool>("unclaim")) {
UHD_LOG_WARNING("MPMD", "Failure to ack unclaim!");
});