aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/transport
diff options
context:
space:
mode:
authorJosh Blum <josh@joshknows.com>2011-09-21 15:58:51 -0700
committerJosh Blum <josh@joshknows.com>2011-09-21 15:59:52 -0700
commit30cfade8252f2a82468227c1fb09aac635962fdd (patch)
treeb1b9a6a4c2152ef6ecb7085443513e43b6fe1ca1 /host/lib/transport
parent1aec4b670607743deb1ac30aef928da8a60456c3 (diff)
downloaduhd-30cfade8252f2a82468227c1fb09aac635962fdd.tar.gz
uhd-30cfade8252f2a82468227c1fb09aac635962fdd.tar.bz2
uhd-30cfade8252f2a82468227c1fb09aac635962fdd.zip
usrp: super packet handler release in order
Makes new usb implementation work where submissions must be in order.
Diffstat (limited to 'host/lib/transport')
-rw-r--r--host/lib/transport/super_recv_packet_handler.hpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/host/lib/transport/super_recv_packet_handler.hpp b/host/lib/transport/super_recv_packet_handler.hpp
index 15bd78242..541c588e6 100644
--- a/host/lib/transport/super_recv_packet_handler.hpp
+++ b/host/lib/transport/super_recv_packet_handler.hpp
@@ -578,6 +578,13 @@ private:
metadata.fragment_offset = info.fragment_offset_in_samps;
info.fragment_offset_in_samps += nsamps_to_copy; //set for next call
+ //done with buffers? this action releases buffers in-order
+ if (not metadata.more_fragments){
+ BOOST_FOREACH(per_buffer_info_type &buff_info, info){
+ buff_info.buff.reset(); //effectively a release
+ }
+ }
+
return nsamps_to_copy_per_io_buff;
}
};