diff options
author | Josh Blum <josh@joshknows.com> | 2010-07-20 10:58:22 -0700 |
---|---|---|
committer | Josh Blum <josh@joshknows.com> | 2010-07-20 10:58:22 -0700 |
commit | 5a4545d3f9689dcddd88f9316ad7bd9c489a3925 (patch) | |
tree | 58bbb5606f7d392a941fb001c9cc9541c9bf05d0 /host/lib/usrp | |
parent | c75bde36c670d66ba049df23747caa8d1f967c39 (diff) | |
download | uhd-5a4545d3f9689dcddd88f9316ad7bd9c489a3925.tar.gz uhd-5a4545d3f9689dcddd88f9316ad7bd9c489a3925.tar.bz2 uhd-5a4545d3f9689dcddd88f9316ad7bd9c489a3925.zip |
uhd: bring timeout parameter to the device::recv call, implement in usrp2
Diffstat (limited to 'host/lib/usrp')
-rw-r--r-- | host/lib/usrp/usrp2/io_impl.cpp | 18 | ||||
-rw-r--r-- | host/lib/usrp/usrp2/usrp2_impl.hpp | 8 |
2 files changed, 11 insertions, 15 deletions
diff --git a/host/lib/usrp/usrp2/io_impl.cpp b/host/lib/usrp/usrp2/io_impl.cpp index 430f28390..1071dc3db 100644 --- a/host/lib/usrp/usrp2/io_impl.cpp +++ b/host/lib/usrp/usrp2/io_impl.cpp @@ -57,7 +57,7 @@ struct usrp2_impl::io_impl{ bool get_recv_buffs(vrt_packet_handler::managed_recv_buffs_t &buffs){ boost::this_thread::disable_interruption di; //disable because the wait can throw - return recv_pirate_booty->pop_elems_with_timed_wait(buffs, boost::posix_time::milliseconds(100)); + return recv_pirate_booty->pop_elems_with_timed_wait(buffs, boost::posix_time::milliseconds(recv_timeout_ms)); } //state management for the vrt packet handler code @@ -69,6 +69,7 @@ struct usrp2_impl::io_impl{ boost::thread_group recv_pirate_crew; bool recv_pirate_crew_raiding; alignment_buffer_type::sptr recv_pirate_booty; + size_t recv_timeout_ms; }; /*********************************************************************** @@ -164,10 +165,8 @@ bool get_send_buffs( } size_t usrp2_impl::send( - const std::vector<const void *> &buffs, - size_t num_samps, - const tx_metadata_t &metadata, - const io_type_t &io_type, + const std::vector<const void *> &buffs, size_t num_samps, + const tx_metadata_t &metadata, const io_type_t &io_type, send_mode_t send_mode ){ return vrt_packet_handler::send( @@ -186,12 +185,11 @@ size_t usrp2_impl::send( * Receive Data **********************************************************************/ size_t usrp2_impl::recv( - const std::vector<void *> &buffs, - size_t num_samps, - rx_metadata_t &metadata, - const io_type_t &io_type, - recv_mode_t recv_mode + const std::vector<void *> &buffs, size_t num_samps, + rx_metadata_t &metadata, const io_type_t &io_type, + recv_mode_t recv_mode, size_t timeout_ms ){ + _io_impl->recv_timeout_ms = timeout_ms; return vrt_packet_handler::recv( _io_impl->packet_handler_recv_state, //last state of the recv handler buffs, num_samps, //buffer to fill diff --git a/host/lib/usrp/usrp2/usrp2_impl.hpp b/host/lib/usrp/usrp2/usrp2_impl.hpp index ab23830c0..cae1b21d6 100644 --- a/host/lib/usrp/usrp2/usrp2_impl.hpp +++ b/host/lib/usrp/usrp2/usrp2_impl.hpp @@ -224,8 +224,7 @@ public: } size_t send( const std::vector<const void *> &, size_t, - const uhd::tx_metadata_t &, - const uhd::io_type_t &, + const uhd::tx_metadata_t &, const uhd::io_type_t &, uhd::device::send_mode_t ); size_t get_max_recv_samps_per_packet(void) const{ @@ -233,9 +232,8 @@ public: } size_t recv( const std::vector<void *> &, size_t, - uhd::rx_metadata_t &, - const uhd::io_type_t &, - uhd::device::recv_mode_t + uhd::rx_metadata_t &, const uhd::io_type_t &, + uhd::device::recv_mode_t, size_t ); private: |