summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosh Blum <josh@joshknows.com>2011-09-02 14:07:13 -0700
committerJosh Blum <josh@joshknows.com>2011-09-08 12:16:42 -0700
commit00cedaea7dfd6c400b265f381d0da070c0950bf0 (patch)
tree4fc001ac7b4e2a40790a4341439426c945341a0a
parent61ff49100f61244399d7705a153988c54228ffed (diff)
downloaduhd-00cedaea7dfd6c400b265f381d0da070c0950bf0.tar.gz
uhd-00cedaea7dfd6c400b265f381d0da070c0950bf0.tar.bz2
uhd-00cedaea7dfd6c400b265f381d0da070c0950bf0.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
}
/*!