From 2761c5a914b52d87f3d8cc903f0cee2e4fbf8d52 Mon Sep 17 00:00:00 2001 From: Tom Bereknyei Date: Sun, 10 Sep 2017 14:53:56 -0400 Subject: rfnoc: Do not pop a sequence number early The ctrl_iface class will assume that a response packet is available. There are cases where no response packet is available, in which case sequence numbers should not get popped from the stack prematurely. --- host/lib/rfnoc/ctrl_iface.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'host') diff --git a/host/lib/rfnoc/ctrl_iface.cpp b/host/lib/rfnoc/ctrl_iface.cpp index 3a16f7ec1..6c2586ebd 100644 --- a/host/lib/rfnoc/ctrl_iface.cpp +++ b/host/lib/rfnoc/ctrl_iface.cpp @@ -183,7 +183,6 @@ private: //get seq to ack from outstanding packets list UHD_ASSERT_THROW(not _outstanding_seqs.empty()); const size_t seq_to_ack = _outstanding_seqs.front(); - _outstanding_seqs.pop(); //parse the packet vrt::if_packet_info_t packet_info; @@ -196,6 +195,7 @@ private: try { UHD_ASSERT_THROW(bool(buff)); UHD_ASSERT_THROW(buff->size() > 0); + _outstanding_seqs.pop(); } catch(const std::exception &ex) { throw uhd::io_error(str(boost::format("Block ctrl (%s) no response packet - %s") % _name % ex.what())); -- cgit v1.2.3