aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/rfnoc/chdr_rx_data_xport.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'host/lib/rfnoc/chdr_rx_data_xport.cpp')
-rw-r--r--host/lib/rfnoc/chdr_rx_data_xport.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/host/lib/rfnoc/chdr_rx_data_xport.cpp b/host/lib/rfnoc/chdr_rx_data_xport.cpp
index cdcd70393..b0c68f2b4 100644
--- a/host/lib/rfnoc/chdr_rx_data_xport.cpp
+++ b/host/lib/rfnoc/chdr_rx_data_xport.cpp
@@ -45,7 +45,8 @@ chdr_rx_data_xport::chdr_rx_data_xport(uhd::transport::io_service::sptr io_srv,
"Creating rx xport with local epid=" << epids.second
<< ", remote epid=" << epids.first);
- _recv_packet = pkt_factory.make_generic();
+ _recv_packet = pkt_factory.make_generic();
+ _recv_packet_cb = pkt_factory.make_generic();
_fc_sender.set_capacity(fc_params.buff_capacity);
// Calculate max payload size
@@ -81,6 +82,12 @@ chdr_rx_data_xport::chdr_rx_data_xport(uhd::transport::io_service::sptr io_srv,
<< ", packets=" << fc_params.freq.packets);
}
+chdr_rx_data_xport::~chdr_rx_data_xport()
+{
+ // Release recv_io before allowing members needed by callbacks be destroyed
+ _recv_io.reset();
+}
+
chdr_rx_data_xport::fc_params_t chdr_rx_data_xport::configure_sep(io_service::sptr io_srv,
recv_link_if::sptr recv_link,
send_link_if::sptr send_link,