diff options
Diffstat (limited to 'usrp2/host')
-rw-r--r-- | usrp2/host/lib/control.cc | 6 | ||||
-rw-r--r-- | usrp2/host/lib/eth_buffer.cc | 6 |
2 files changed, 9 insertions, 3 deletions
diff --git a/usrp2/host/lib/control.cc b/usrp2/host/lib/control.cc index 33a95c078..3b5533eb8 100644 --- a/usrp2/host/lib/control.cc +++ b/usrp2/host/lib/control.cc @@ -27,6 +27,9 @@ #include <iostream> #include <gruel/thread.h> +#include <boost/date_time/posix_time/posix_time.hpp> +namespace pt = boost::posix_time; + namespace usrp2 { pending_reply::pending_reply(unsigned int rid, void *buffer, size_t len) @@ -44,10 +47,9 @@ namespace usrp2 { pending_reply::wait_for_completion(double secs) { gruel::scoped_lock l(d_mutex); - boost::system_time to(gruel::get_new_timeout(secs)); while (!d_complete) { - if (!d_cond.timed_wait(l, to)) + if (!d_cond.timed_wait(l, pt::milliseconds(long(secs*1e3)))) return 0; // timed out } diff --git a/usrp2/host/lib/eth_buffer.cc b/usrp2/host/lib/eth_buffer.cc index bd37061fd..e8ca05283 100644 --- a/usrp2/host/lib/eth_buffer.cc +++ b/usrp2/host/lib/eth_buffer.cc @@ -156,8 +156,12 @@ namespace usrp2 { { // if we have background thread, stop it here - if (!d_using_tpring && d_buf) + if(d_buf) { + if (!d_using_tpring) free(d_buf); + else + munmap(d_buf, d_buflen); + } return d_ethernet->close(); } |