diff options
-rw-r--r-- | host/lib/usrp/usrp2/usrp2_fifo_ctrl.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/host/lib/usrp/usrp2/usrp2_fifo_ctrl.cpp b/host/lib/usrp/usrp2/usrp2_fifo_ctrl.cpp index e761e3d91..9d21c73ae 100644 --- a/host/lib/usrp/usrp2/usrp2_fifo_ctrl.cpp +++ b/host/lib/usrp/usrp2/usrp2_fifo_ctrl.cpp @@ -22,6 +22,7 @@ #include "usrp2_fifo_ctrl.hpp" #include <boost/thread/mutex.hpp> #include <boost/asio.hpp> //htonl +#include <boost/format.hpp> using namespace uhd::transport; @@ -36,7 +37,8 @@ public: usrp2_fifo_ctrl_impl(zero_copy_if::sptr xport): _xport(xport), - _seq(0), _last_seq_ack(0) + _seq(0), _last_seq_ack(0), + _timeout(ACK_TIMEOUT) { while (_xport->get_recv_buff(0.0)){} //flush this->set_time(uhd::time_spec_t(0.0)); @@ -98,7 +100,7 @@ public: boost::uint32_t wait_for_ack(const boost::int16_t seq_to_ack){ while (_last_seq_ack < seq_to_ack){ - managed_recv_buffer::sptr buff = _xport->get_recv_buff(_use_time? MASSIVE_TIMEOUT : ACK_TIMEOUT); + managed_recv_buffer::sptr buff = _xport->get_recv_buff(_timeout); if (not buff){ throw uhd::runtime_error("fifo ctrl timed out looking for acks"); } @@ -127,6 +129,7 @@ public: boost::mutex::scoped_lock lock(_mutex); _time = time; _use_time = _time != uhd::time_spec_t(0.0); + if (_use_time) _timeout = MASSIVE_TIMEOUT; //permanently sets larger timeout } void set_tick_rate(const double rate){ @@ -142,6 +145,7 @@ private: uhd::time_spec_t _time; bool _use_time; double _tick_rate; + double _timeout; }; |