aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosh Blum <josh@joshknows.com>2011-09-02 14:07:13 -0700
committerJosh Blum <josh@joshknows.com>2011-09-02 14:07:13 -0700
commit0cbafd02667ed6125e6ba9a7c31bedb6e74c1fcb (patch)
tree056abf17c82de06860ff2fe48b18b6d7fd3a0503
parentacf92e83569097da61403f63a2cbe3b18e4920bb (diff)
downloaduhd-0cbafd02667ed6125e6ba9a7c31bedb6e74c1fcb.tar.gz
uhd-0cbafd02667ed6125e6ba9a7c31bedb6e74c1fcb.tar.bz2
uhd-0cbafd02667ed6125e6ba9a7c31bedb6e74c1fcb.zip
usrp1: reset control objects in this order to avoid race conditions
-rw-r--r--host/lib/usrp/usrp1/usrp1_impl.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/host/lib/usrp/usrp1/usrp1_impl.cpp b/host/lib/usrp/usrp1/usrp1_impl.cpp
index 8f6a582fa..b2da16837 100644
--- a/host/lib/usrp/usrp1/usrp1_impl.cpp
+++ b/host/lib/usrp/usrp1/usrp1_impl.cpp
@@ -390,11 +390,13 @@ usrp1_impl::usrp1_impl(const device_addr_t &device_addr){
}
usrp1_impl::~usrp1_impl(void){
- _io_impl.reset(); //stops vandal before other stuff gets deconstructed
UHD_SAFE_CALL(
this->enable_rx(false);
this->enable_tx(false);
)
+ _tree.reset(); //resets counts on sptrs held in tree
+ _soft_time_ctrl.reset(); //stops cmd task before proceeding
+ _io_impl.reset(); //stops vandal before other stuff gets deconstructed
}
/*!